Methods and systems for managing media subscriptions

ABSTRACT

Methods and systems are described for a media guidance application that manages media subscriptions between a user and a content provider. In particular, the media guidance application may automatically identify subscription terms that are beneficial for both a user and for a content provider.

BACKGROUND

In conventional systems, a user may receive access to a media library bysubscribing to a media service and paying a recurring fee. The mediaservice may change the media available to the user from the library on arecurring basis. Oftentimes, a user must pay for multiple subscriptionsto have access to all media of interest to the user. Due to therecurring changes to the media available in a media library, a user maynot be aware of the media offered by a service. In some instances, auser may inadvertently pay for two services offering overlappingcontent. In other instances, a user may pay for a subscription while nomedia of interest to said user is offered by the service. In anotherinstance, the user may have a first subscription to a first contentprovider and may be unaware that a second content provider may offerlower pricing on similar content. Likewise, content providers may havedifficulty in targeting users. For example, a content provider may beunaware of users who may be strong candidates to acquire. Thus, the usermay waste money paying for excess subscriptions or may waste timesearching for desirable media, or content providers may waste moneytargeting a group of users that are not strong candidates to acquire.

SUMMARY

Accordingly, methods and systems are described herein for a mediaguidance application that adapts media content subscriptions accordingto the interests of the user. For example, the media guidanceapplication may receive and process a plurality of streams of data fromdifferent sources to automatically determine content offerings, billingcycles, etc., in order to minimize overlaps in media content provided bydifferent subscriptions, eliminate subscriptions that do not offer mediacontent of interest to a user, and maximize the amount of media contentof interest to a user during a subscription period. Advantageously, byprocessing the plurality of streams of data, the media guidanceapplication relieves the user of the time-consuming and tedious burdenof managing the various subscriptions.

In particular, the media guidance application may recommend a mediasubscription to a user, along with start and end times for saidsubscription, based on information about the user. The media guidanceapplication may aggregate billing for each of the subscriptions suchthat a user only needs to pay a single bill for multiple subscriptions.For example, the media guidance application may determine that a userprefers to watch the shows “Game of Thrones,” offered during the winteron a Home Box Office (“HBO”) subscription and “WrestleMania,” offeredduring the spring on a World Wrestling Entertainment (“WWE”) Networksubscription. The media guidance application may inform the user tosubscribe to HBO during the winter, on a day including or before thestart time of the show “Game of Thrones.” The media guidance applicationmay subsequently inform the user to cancel the HBO subscription on a dayincluding or after the show “Game of Thrones” is no longer available onHBO. The media guidance application may likewise inform the user tosubscribe to WWE Network when “WrestleMania” is available in the spring.

The media guidance application may also recommend subscriptions to auser based on viewing habits. For example, the media guidanceapplication may identify the show “Orange is the New Black” (offered byNetflix) as having similar characteristics to “Game of Thrones” and“WrestleMania” and may recommend a Netflix subscription when “Orange isthe New Black” becomes available.

Furthermore, the media guidance application may aggregate the chargesfor the HBO, Netflix, and WWE Network subscriptions such that the userpays a single entity for all the subscriptions, as well as provide otherservices related to automatically managing multiple subscriptions forthe user, such as arbitrating the automatic activation and terminationto said subscriptions and automatically negotiating subscription termswith the content provider.

In some aspects, the media guidance application may determine that amedia asset of interest to a user is currently unavailable. For example,the media guidance application may retrieve user profile dataidentifying a media asset that is of interest to the user. For example,the media guidance application may retrieve data identifying “Game ofThrones” in a list of favorite shows corresponding to a user.Furthermore, the media guidance application may access a remotely orlocally stored program list that identifies media assets that arecurrently available to the user (e.g., a television programmingschedule). The media guidance application may compare the program listwith the media asset of interest to the user to determine whether themedia asset of interest to the user is currently available. For example,the media guidance application may search the programming schedule forthe show “Game of Thrones.”

The media guidance application may then compare the media asset with adatabase listing media assets that will become available from variouscontent providers to identify a content provider from which the mediaasset will be available. For example, the media guidance application mayaccess a remote or local database listing shows that will becomeavailable, at a future date or time, from various content providers. Themedia guidance application may compare the media asset of interest tothe user, such as “Game of Thrones,” with media assets in the databaseto identify a content provider that will offer the media asset ofinterest to the user. For example, the media guidance application mayidentify HBO as a content provider of the show “Game of Thrones.”

The media guidance application may compare the media asset with adatabase listing dates at which media assets will become available fromthe content provider to identify a date at which the media asset willbecome available from the content provider. Following from the previousexample, the media guidance application may access a remote or locallystored programming schedule corresponding to HBO (i.e., a contentprovider). The media guidance application may compare the programmingschedule with the show “Game of Thrones” to identify a start time (e.g.,a first air date and time for an episode corresponding to the show) whenthe content is first available.

The media guidance application may compare the date in a databaselisting date ranges associated with different subscription periods forthe content provider to determine a subscription period that includesthe date. For example, the media guidance application may access aremote or local database listing possible subscription periods for thechannel HBO. For example, the media guidance application may access adatabase listing subscription periods for HBO (e.g., month to month,quarterly, yearly, etc.) and/or subscription start dates (e.g.,beginning of a month, anytime, middle of a month, etc.). The mediaguidance application may then search for a subscription period and/ordate combination comprising the date on which the media asset ofinterest to the user becomes available.

The media guidance application may determine a start date for thesubscription period. For example, the media guidance application mayidentify the start date as a subscription start date associated with theidentified subscription period described above. In another example, themedia guidance application may choose a date near the date on which themedia asset becomes available as the start date (e.g., in order toprompt the user to subscribe before the start date).

The media guidance application may generate for display, on a displayscreen, a reminder to the user to request access to the content provideron the start date. For example, the media guidance application maygenerate for display a message on a display screen associated with amedia guidance application reminding the user to subscribe to thecontent provider (e.g., HBO).

In some embodiments, the media guidance application may request accessto the content provider on the start date. For example, the mediaguidance application may automatically activate a subscription to acontent provider to provide access to the media content of interest tothe user on the start date. For example, the media guidance applicationmay automatically establish an account from the content provider by, forexample, transmitting a packet to the content provider requesting a newaccount beginning on the start date. In another example, the mediaguidance application may request access to the content provider on thestart date in response to receiving input from a user instructing themedia guidance application to request access on the start date.

In some embodiments, the media guidance application may generate fordisplay an option to subscribe to the content provider in addition tothe reminder. For example, the media guidance application may generatefor display a button on a message reminding a user to subscribe to acontent provider. The user may select the button to subscribe to thecontent provider.

In some embodiments, the media guidance application may generate fordisplay a date at which the media asset will become available from thecontent provider in the reminder. For example, the media guidanceapplication may display a date along with the reminder informing theuser when the media asset of interest to the user will become available.

In some embodiments, the media guidance application may generate fordisplay a recommendation for an additional media asset that is similarto the media asset and available from the content provider before thedate. For example, the media guidance application may access a databaselisting media assets that are available on HBO between the start dateand the date on which “Game of Thrones” becomes available. The mediaguidance application may access user profile data containing showpreferences corresponding to the user (e.g., a user preference formurder-dramas). The media guidance application may then search thedatabase for a media asset matching the preference (e.g., murder-dramas)to identify a matching media asset, such as an episode of the series“The Sopranos.” The media guidance application may generate for displaythe recommendation to the user.

In some embodiments, the media guidance application may generate fordisplay the reminder on the start date. For example, the media guidanceapplication may generate for display a reminder to subscribe to HBO(i.e., the content provider) on the start day in order to prompt theuser to subscribe.

In some embodiments, the media guidance application may determine anumber of days between the date and the start date. For example, themedia guidance application may compute on control circuitry associatedwith the media guidance application the number of days between the datethat the show “Game of Thrones” becomes available and the start date. Insome embodiments, the difference may be zero. For example, the startdate may be the day that the media asset becomes available.

In some embodiments, the media guidance application may generate fordisplay, on the display screen, media asset recommendations based on thenumber of days. For example, the media guidance application maycalculate seven days between the start date and the date that the mediaasset of interest to the user will become available. The media guidanceapplication may compute a media asset recommendation for each day.

In some embodiments, the media guidance application may determine a dayof the week between the date and the start date. For example, the mediaguidance application may access a user profile to determine a day of theweek where the user watches the most television (e.g., consumes the mosttelevision media assets). The media guidance application may identifyFriday as a day of the week between the start date and the date (i.e.,the date that the media asset of interest to the user will becomeavailable) where the user watches the most television relative to otherdays of the week within the same period.

In some embodiments, the media guidance application may generate fordisplay, on the display screen, a recommendation for an additional mediaasset based on the day of the week. For example, the media guidanceapplication may identify Friday as described above. The media guidanceapplication may identify media assets available from the contentprovider, such as HBO, on Friday. The media guidance application maycompare data from a profile corresponding to the user with media assetsavailable from the content provider (e.g., HBO) on Friday. The mediaguidance application may generate for display a media asset matching theuser profile data.

In some embodiments, the media guidance application may determine thatthe user is currently subscribed to the content provider. For example,the media guidance application may access subscription statusinformation saved on a memory accessible to the media guidance todetermine that the user is currently subscribed to the content provider,such as HBO.

In some embodiments, the media guidance application may determine an enddate of a current subscription period of the user. For example, themedia guidance application may determine an end date of the currentsubscription period by sending a query, containing data identifying theuser and requesting a subscription end date, to a server correspondingto the content provider (e.g., an HBO server). The media guidanceapplication may compute the end date of the subscription based on aquery received from the server.

In some embodiments, the media guidance application may generate fordisplay, on the display screen, the reminder to the user to requestaccess to the content provider on the end date. For example, the mediaguidance application may display a message, on a display screenassociated with the media guidance application, prompting the user toextend the subscription (e.g., a message informing a user to renew hisor her HBO subscription).

In some embodiments, the media guidance application may automaticallyextend a subscription for the user. For example, the media guidanceapplication may determine a subscription period of 2 months as describedabove. The media guidance application may automatically renew asubscription to the content provider by, for example, sending a packetto the content provider requesting an additional month of access, inorder to provide access to the media content of interest to the user forthe full period.

In some embodiments, the media guidance application may automaticallycancel a subscription to a content provider. For example, the mediaguidance application may transmit a packet to the content providerrequesting termination or suspension of an active subscription to thecontent provider on the end date as computed above (e.g., to reduceunnecessary spending on a subscription when media content of interest tothe user is not available).

In some embodiments, the media guidance application may determine anumber of media assets that are of interest to the user that becomeavailable from the content provider during the subscription period. Forexample, the media guidance application may access a listing of allmedia assets that will become available to the user between the startdate of the subscription and the day that the subscription will end. Themedia guidance application may access data in a profile corresponding tothe user to identify a preference of said user. The media guidanceapplication may compare the preference with the metadata correspondingto the listing of all media assets to identify media assets matching thepreference. The media guidance application may enumerate the identifiedmedia assets to determine the number of media assets that are ofinterest to the user.

In some embodiments, the media guidance application may compare thenumber to a threshold number. For example, the media guidanceapplication may access, from a memory associated with the media guidanceapplication, a user-selected number representing a minimum number ofmedia assets available from a content provider. For example, the mediaguidance application may receive user input indicating a thresholdminimum number of media assets required from a content provider for asubscription recommendation. The media guidance application may comparethe threshold number to the number of media assets that are of interestto the user.

In some embodiments, the media guidance application may select thesubscription period based on the number exceeding the threshold. Forexample, the media guidance application may select a subscription periodsuch that during the entire subscription period at least the thresholdnumber of media assets is available to the user.

In some embodiments, the media guidance application may compare thenumber of media assets that are of interest to the user that becomeavailable from the content provider during the subscription period to aprice corresponding to the subscription. For example, the media guidanceapplication may query the media content provider for a price associatedwith the subscription period (e.g., monthly, daily, one-time cost). Themedia guidance may receive a price associated with the subscriptionperiod from the content provider and may use the price to identify avalue (e.g., to the user) associated with the subscription by, forexample, by dividing the price by a weighted number of media assets thatare of interest to the user that become available from the contentprovider. The media guidance application may determine a weighting forthe media assets by, for example, accessing a media asset wish list(e.g., a list comprising media assets that the user wants to watch) andgiving higher weighting to media assets that are listed in the mediaasset wish list.

In some aspects, the media guidance application may increase a value(e.g., to the user and the content provider) of a subscription bynegotiating subscription terms with a content provider for a recommendedcontent subscription. For example, the media guidance application maynegotiate terms that comprise a subscription discount to increase thevalue of the subscription to the user by lowering the subscription cost(i.e., thus increasing the value as described above), and increase thevalue of the subscription to the content provider by incentivizing theuser to subscribe to the content provider (e.g., because of the lowersubscription cost the user may subscribe whereas they might nototherwise).

The media guidance application may identify user profile characteristicsthat may be of interest to a content provider, such as user behavior ordemographic data. The media guidance application may compare data fromthe profile of the user to the user profile characteristics of interestto the content provider to determine a degree to which the user profilematches the profile characteristics. Based on a degree to which the userprofile matches the profile characteristics, the media guidanceapplication may determine subscription terms and transmit the terms tothe content provider. For example, the media guidance application maydetermine that a user profile of a first user matches the user profilecharacteristics very closely (e.g., 96% match by calculating a match asdescribed below). The media guidance application may access subscriptionterm criterion (e.g., criterion provided by the content provider mappinga match to a discount) to determine the subscription terms. For example,the media guidance application may identify subscription term criterionspecifying that a user whose profile matches the user profilecharacteristics very closely (e.g., 95% match or more) is entitled to a50% discount. Accordingly, the media guidance application may determinesubscription terms comprising a 50% discount for the user and maytransmit the terms to the content provider. In contrast, the mediaguidance application may determine subscription terms for a second userthat does not match the user profile characteristics closely (e.g., 8%match) to comprise a discount smaller than 50% (i.e., because thecontent provider is more interested in acquiring the first user than thesecond user).

In some embodiments, the media guidance application may retrieve a userprofile from memory. For example, the media guidance application mayretrieve user profile data from a remote or local database listingdemographic data related to the user, a viewing history, or data eithermanually input or automatically derived (e.g., by the media guidanceapplication) about the user. For example, the media guidance applicationmay use the user profile to identify information and traits about theuser. The information and traits identified by the media guidanceapplication may be used to determine a degree to which the user matchesuser profile characteristics of interest to a content provider.

In some embodiments, the media guidance application may search adatabase of media assets available from a plurality of content providersto identify a plurality of media assets matching a user preference. Forexample, the media guidance application may determine that a userprefers to watch romantic comedies. Accordingly, the media guidanceapplication may subsequently search a database of media assets for allmedia assets matching the romantic comedy genre. The media guidanceapplication may identify media assets matching a user preference toidentify media content that is of interest to the user. For example, themedia guidance application may use the identified media content todetermine if a content provider provides access to content that is ofinterest to the user.

In some embodiments, the media guidance application may identify a firstsubset of the plurality of media assets available from a first contentprovider of the plurality of content providers, wherein the userrequires a first subscription to the first content provider to accessthe first subset. For example, the media guidance application may groupthe media assets, by, for example, examining metadata related to each ofthe media assets, to determine a content provider for the media asset.Based on identifying a content provider, the media guidance applicationmay associate the media asset with a subset corresponding to the contentprovider. The media guidance application may group the media assets todetermine an amount of media assets that may be of interest to the userfrom the content provider. As an example, the media guidance applicationmay only recommend a content provider to a user if a threshold number ofmedia assets matching the user profile are available.

In some embodiments, the media guidance application may identify asubscription associated with a content provider of the content providersby, for example, querying the content provider for a cost (e.g.,monthly, daily, one-time cost) to get access to the subset of mediaassets. The media guidance application may retrieve the subscriptioncost to use as a basis for a discount or basis for a recommendation(e.g., the media guidance application may use the cost to determine thevalue of a 10% discount or may use the cost to determine whether thesubscription costs are greater than a budget saved in the user profile).

In some embodiments, the media guidance application may retrieve firstuser profile characteristics of interest to the first content provider.For example, the media guidance application may query the contentprovider for characteristics of a user that are of most interest to thecontent provider. For example, the media guidance application may detectthat the content provider generates most of its revenue by displayingadvertisements. Subsequently, the media guidance application mayreceive, from the content provider, user profile characteristicscorresponding to users who frequently watch and click throughadvertisements. In another example, the media guidance application mayautomatically identify profile characteristics of interest to thecontent provider automatically by, for example, identifying a typicaldemographic associated with a content provider and retrieving userprofile characteristics associated with the typical demographic. Themedia guidance application may use the first user profilecharacteristics to determine whether a user profile matches user profilecharacteristics of interest to the content provider to identify whetherthe user is one that would be of interest to the content provider toacquire.

In some embodiments, the media guidance application may compare thefirst user profile characteristic to the user profile. For example, themedia guidance application may compare data in the user profile with theretrieved user profile characteristics to identify how closely the userprofile matches the user profile characteristics. The media guidanceapplication may use the results of the comparison to identify a discountfor the user to a subscription to the content provider.

In some embodiments, the media guidance application may, based oncomparing the first user profile characteristic to the user profile,determine a degree to which the first user profile characteristiccorresponds to the user profile. For example, the media guidanceapplication may use a fuzzy matching algorithm to identify a score(e.g., a percent) representative of how closely the user profile and theuser profile characteristics match. Based on the degree to which theuser profile matches the first user profile characteristic, the mediaguidance application may determine a discount corresponding to the userfor a subscription to the content provider.

In some embodiments, the media guidance application may, based on thedegree to which the first user profile characteristics correspond to theuser profile, determine first subscription terms for the firstsubscription. For example, the media guidance application may determinethat the user profile matches the user profile characteristics ofinterest to the user with a score of 90%. The media guidance applicationmay access a lookup table of score-discount pairs to determine apromotion (e.g., one month free) for a user having a score of 90%. Themedia guidance application may use the degree to determine a discountfor a subscription to the content provider corresponding to the user,because, for a user having a higher degree, the content provider may bemore interested in acquiring the user.

In some embodiments, the media guidance application may transmit a firstsubscription request featuring the first subscription terms to the firstcontent provider. For example, the media guidance application maygenerate a packet for transmission over a data network connected to themedia guidance application, comprising the first subscription terms, asdetermined by the media guidance application, to the content provider.

In some embodiments, the media guidance application may retrieve theuser profile from memory in response to detecting that the user is goingto cancel a second subscription to a second content provider. Forexample, the media guidance application may determine that a user hasselected a “Cancel Subscription” button (e.g., by detecting user inputat a user input device, such as a touch on a touchscreen) displayed on adisplay screen accessible to the media guidance application. In responseto detecting the user input, the media guidance application may retrievethe user profile.

In some embodiments, the media guidance application may detect that theuser is going to cancel the second subscription to the second contentprovider by detecting that the first subset will no longer be availablefrom the second content provider at a future date. For example, themedia guidance application may determine that a user interested in thetelevision show “Game of Thrones” may wish to cancel a subscription tothe content provider after a current season of “Game of Thrones” is overby, for example, determining that a user has only consumed “Game ofThrones” media from the content provider over the course of a year.

In some embodiments, the media guidance application may identify firstuser characteristics including user demographic data, viewing history,user price preferences, user media consumption rate, user commercialviewing preferences, and retail purchase information if thecharacteristics are of interest to the content provider. For example,the media guidance application may identify that a content providergenerates revenue by selling downloadable media assets. Therefore, themedia guidance application may identify retail purchase information,such as information identifying that a user purchases downloadable mediaassets, to be of interest to the content provider.

In some embodiments, the media guidance application may receiveinformation from the user to populate the user profile, wherein theinformation is compared to the first user profile characteristics todetermine the degree to which the first user profile characteristicscorrespond to the user profile. For example, the media guidanceapplication may receive demographic information from a user used topopulate the user profile of the user. The media guidance applicationmay store the user profile data in memory. The media guidanceapplication may use the demographic data in comparing the user profileto the first user profile characteristics.

In some embodiments, the media guidance application may generate fordisplay to the user a first promotion for the first subscription basedon the information. For example, the media guidance application mayidentify a promotion, such as a discount on a subscription to thecontent provider, and may generate for display the promotion to the useron a display screen accessible to the media guidance application.

In some embodiments, the media guidance application may receive anupdate to the information from the user. For example, the media guidanceapplication may generate for display a slider to allow a user to adjustvarious parameters, such as a total cost, subscription length, etc., andmay detect user input, for example, through input into a remote control,to update a parameter.

In some embodiments, the media guidance application may generate fordisplay to the user a second promotion for the first subscription basedon the updated information. For example, the media guidance applicationmay detect that a user has requested an adjusted subscription lengthfrom 12 months to six months. The media guidance application maygenerate for display a second promotion associated with the contentprovider for the shorter subscription term.

In some embodiments, the media guidance application may identify asecond subset of the plurality of media assets available from a secondcontent provider of the plurality of content providers, wherein the userrequires a second subscription to the second content provider to accessthe second subset. For example, the media guidance application maydetermine, using the user profile, that the user is interested inromantic comedies. The media guidance application may identify a secondsubset of romantic comedies that are available from a second contentprovider upon payment of a subscription cost.

In some embodiments, the media guidance application may retrieve seconduser profile characteristics of interest to the second content provider.For example, the media guidance application may query the second contentprovider for user profile characteristics of interest to the secondcontent provider, such as a propensity for a user to pay for additionalmedia assets or watch advertisements. The media guidance application mayreceive the second user profile characteristics to identify whether theuser profile matches user profile characteristics of interest to thecontent provider.

In some embodiments, the media guidance application may, based oncomparing the second user profile characteristic to the user profile,determine a degree to which the second user profile characteristicscorrespond to the user profile. For example, the media guidanceapplication may use a fuzzy comparison algorithm to determine to whatdegree the user profile and the user profile characteristics match. Themedia guidance application may use the degree to determine a discountfor the user to the second content provider.

In some embodiments, the media guidance application may, based on thedegree to which the second user profile characteristic correspond to theuser profile, determine second subscription terms for the secondsubscription. For example, the media guidance application may determinethat a user does not correspond closely to the user profilecharacteristics of interest to a content provider (e.g., has a degreescore of 5% out of 100%). Based on the determination, the media guidanceapplication may determine the second subscription terms to besubstantially the same as standard, undiscounted subscription terms. Forexample, the media guidance application may determine that when a degreescore is low (e.g., below a threshold score received from the contentprovider), the content provider may not be interested in acquiring auser.

In some embodiments, the media guidance application may transmit asecond subscription request featuring the second subscription terms tothe second content provider. For example, the media guidance applicationmay generate a packet for transmission over a wireless network for whichthe media guidance application is connected, comprising the secondsubscription terms, and may transmit the message to the second contentprovider.

In some embodiments, the media guidance application may compare a valueto the user of the first subscription with a value to the user of thesecond subscription. For example, the media guidance application maycompute the value to the user of the first and second subscriptions asdescribed above. The media guidance application may compare the computedvalue of the first subscription with the computed value of the secondsubscription to identify a subscription having a greater value. In someembodiments, the media guidance application may automatically subscribeto the subscription having the greater value or may display arecommendation to the subscription having a greater value to the user.For example, the media guidance application may send a packet to thecontent provider having the greater value requesting activation of a newaccount as described above or the media guidance application may displaya pop up message recommending the subscription on a display screenaccessible to the media guidance application.

In some embodiments, the media guidance application may retrieve asubscription term criterion from the first content provider, wherein thesubscription term criterion indicates subscription terms acceptable tothe first content provider based on the profile. For example, the mediaguidance application may receive a criterion, such as a minimum age, aminimum degree score, etc., for a user to qualify for a set ofsubscription terms. For example, the media guidance application mayreceive a discount and subscription length corresponding to a user whomatches the user profile characteristics of interest to the contentprovider by 90%. The media guidance application may use the criterion togenerate for display subscription terms to the user.

In some embodiments, the media guidance application may notify the firstcontent provider of the second subscription request. For, example, themedia guidance application may notify the first content provider bysending a packet to the first content provider indicating a secondsubscription request has been sent by the media guidance application. Inanother example, the media guidance application may notify the firstcontent provider that the subscription terms of the second contentprovider have a lower cost than the subscription terms of the firstcontent provider. The media guidance application may notify the firstcontent provider of the second subscription request to allow for thefirst content provider to modify the first subscription terms based onthe information about the second subscription request.

In some embodiments, the media guidance application may query the firstcontent provider for an updated subscription term criterion. Forexample, the media guidance application may query the first contentprovider for a lower cost in response to notifying the first contentprovider that the subscription terms of the second content provider havean associated lower cost.

In some embodiments, the media guidance application may receive anupdated subscription term criterion based on the user subscribing toboth the first content provider and the second content provider. Forexample, the media guidance application may receive a criterionidentifying subscription terms for a subscription to both the first andthe second content providers, based on the user profile data. Forexample, the media guidance application may receive subscription termssuch that the two content providers are bundled into a singlesubscription.

In some embodiments, the media guidance application may transmit a firstsubscription request, wherein the first subscription request includes athreshold number of users that will subscribe to the first contentprovider at the first subscription terms. For example, the mediaguidance application may identify 10,000 users to subscribe to a contentprovider. The media guidance application may request a 5% discount on astandard subscription price if all 10,000 users are signed up for thesubscription.

It should be noted that the systems, methods, apparatuses, and/oraspects described above may be applied to, or used in accordance with,other systems, methods, apparatuses, and/or aspects.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the disclosure will beapparent upon consideration of the following detailed description, takenin conjunction with the accompanying drawings, in which like referencecharacters refer to like parts throughout, and in which:

FIG. 1 shows an illustrative example of a media guidance display thatmay be presented in accordance with some embodiments of the disclosure;

FIG. 2 shows another illustrative example of a media guidance displaythat may be presented in accordance with some embodiments of thedisclosure;

FIG. 3 is a block diagram of an illustrative user equipment device inaccordance with some embodiments of the disclosure;

FIG. 4 is a block diagram of an illustrative media system in accordancewith some embodiments of the disclosure;

FIG. 5 is a flowchart of illustrative steps for recommending additionalmedia content based on a content provider recommendation in accordancewith some embodiments of the disclosure;

FIG. 6 is pseudocode illustrative of an algorithm for recommendingadditional media content based on a content provider recommendation inaccordance with some embodiments of the disclosure;

FIG. 7 is a flowchart of illustrative steps for searching a database toidentify a content provider having a media asset of interest to a userin accordance with some embodiments of the disclosure;

FIG. 8 is pseudocode illustrative of an algorithm for identifying acontent provider having a media asset of interest to a user inaccordance with some embodiments of the disclosure;

FIG. 9 shows an illustrative example of a user device showing asubscription reminder in accordance with some embodiments of thedisclosure;

FIG. 10 is a flowchart of illustrative steps for generating a reminderfor a user to request access to a content provider in accordance withsome embodiments of the disclosure;

FIG. 11 is a flowchart of illustrative steps for recommending a mediaasset to a user in accordance with some embodiments of the disclosure;

FIG. 12 is a flowchart of illustrative steps for determiningsubscription terms based on a user profile and user profilecharacteristics of interest to a content provider in accordance withsome embodiments of the disclosure;

FIG. 13 is pseudocode illustrative of an algorithm for determiningsubscription terms based on a user profile and user profilecharacteristics of interest to a content provider in accordance withsome embodiments of the disclosure;

FIG. 14 is a flowchart of illustrative steps for searching a database toidentify user profile characteristics of interest to a content providermatching a user profile in accordance with some embodiments of thedisclosure;

FIG. 15 is pseudocode illustrative of an algorithm for identifying userprofile characteristics of interest to a content provider matching auser profile in accordance with some embodiments of the disclosure;

FIG. 16 is a flowchart of illustrative steps for determiningsubscription terms between a user and a content provider in accordancewith some embodiments of the disclosure.

DETAILED DESCRIPTION OF DRAWINGS

Methods and systems are described herein for a media guidanceapplication that adapts media subscriptions according to the interestsof the user. In particular, the media guidance application may recommenda media subscription to a user, along with start and end times for saidsubscription, based on profile information about the user, such as mediacontent interests or a budget input by the user. The media guidanceapplication may aggregate billing for each subscription such that a useronly needs to pay a single bill for multiple media subscriptions.Subscriptions to various media content providers may be arbitratedautomatically by the media guidance application requiring little to nouser input. The media guidance application may seek discounts to mediacontent subscriptions to optimize a value of the subscription for boththe user and the content provider.

As referred to herein, the term “in response to” refers to initiated asa result of. For example, a first action being performed in response toanother action may include interstitial steps between the first actionand the second action. As referred to herein, the term “directly inresponse to” refers to caused by. For example, a first action beingperformed directly in response to another action may not includeinterstitial steps between the first action and the second action.

As referred to herein, “media subscription” refers to any product orservice where a user pays a recurring or one-time fee in return formedia content. For example, a media subscription may comprise payment ofa subscription fee in exchange for access to a media library (providedby a content provider) for a subscription period. As referred to herein,a “content provider” may be any entity offering a media subscription.For example, a content provider may be a television network such as HBO.In some embodiments, a content provider may be a streaming service suchas Hulu. The content provider may charge a subscription fee as part of amedia subscription.

As referred to herein, a “subscription fee” may be any recurring orone-time payment made in exchange for access to media. For example, asubscription fee may be a monthly access charge for access to a HBOmedia library. In another example, a subscription fee may be a yearlycharge to access a Hulu media library. As referred to herein, a “medialibrary” refers to any media that is accessible via the mediasubscription. For example, a media library offered by a HBO subscriptionmay include all movies, television shows, etc., aired on HBO channels,or may include all movies, television shows, etc. offered on demand to auser. In some media subscriptions, a media library is only accessible toa user during a subscription period.

As referred to herein, a “subscription period” is an amount of time inwhich a media library is accessible to a user. For example, upon paymentof a monthly HBO subscription fee, a user may access a HBO media libraryfor a month (i.e., the subscription period). In some examples, a contentprovider may offer a fixed number of days in a subscription period. Forexample, a content provider may offer monthly, quarterly and yearlysubscription periods. A user may wish to access a media library for onlytwo weeks. In this example, the user must pay at least the subscriptionfee for the monthly subscription period (i.e., the shortest subscriptionperiod) to access the media library for the two weeks.

In some embodiments, a user may access a media subscription via a mediaguidance application. As referred to herein, a “media guidanceapplication” is an application that enables users to access mediacontent through an interface. Media guidance applications may takevarious forms depending on the content for which they provide guidance.One typical type of media guidance application is an interactivetelevision program guide. Interactive television program guides(sometimes referred to as electronic program guides) are well-knownguidance applications that, among other things, allow users to navigateamong and locate many types of content or media assets. Media guidanceapplications may generate graphical user interface screens that enable auser to navigate among, locate and select content. In some examples, amedia library from media subscription is accessible to a user via amedia guidance application.

The media guidance application and/or any instructions for performingany of the embodiments discussed herein may be encoded on computerreadable media. Computer readable media includes any media capable ofstoring data. The computer readable media may be transitory, including,but not limited to, propagating electrical or electromagnetic signals,or may be non-transitory including, but not limited to, volatile andnon-volatile computer memory or storage devices such as a hard disk,floppy disk, USB drive, DVD, CD, media cards, register memory, processorcaches, Random Access Memory (“RAM”), etc.

As referred to herein, the terms “media asset” and “content” should beunderstood to mean an electronically consumable user asset, such astelevision programming, as well as pay-per-view programs, on-demandprograms (as in video-on-demand (VOD) systems), Internet content (e.g.,streaming content, downloadable content, Webcasts, etc.), video clips,audio, content information, pictures, rotating images, documents,playlists, websites, articles, books, electronic books, blogs,advertisements, chat sessions, social media, applications, games, and/orany other media or multimedia and/or combination of the same. Mediaguidance applications also allow users to navigate among and locatecontent. As referred to herein, the term “multimedia” should beunderstood to mean content that utilizes at least two different contentforms described above, for example, text, audio, images, video, orinteractivity content forms. Content may be recorded, played, displayedor accessed by user equipment devices, but can also be part of a liveperformance.

One of the functions of the media guidance application is to providemedia guidance data to users. As referred to herein, the phrase “mediaguidance data” or “guidance data” should be understood to mean any datarelated to content or data used in operating the guidance application.For example, the guidance data may include program information, guidanceapplication settings, user preferences, user profile information, medialistings, media-related information (e.g., broadcast times, broadcastchannels, titles, descriptions, ratings information (e.g., parentalcontrol ratings, critic's ratings, etc.), genre or category information,actor information, logo data for broadcasters' or providers' logos,etc.), media format (e.g., standard definition, high definition, 3D,etc.), advertisement information (e.g., text, images, media clips,etc.), on-demand information, blogs, websites, and any other type ofguidance data that is helpful for a user to navigate among and locatedesired content selections.

With the advent of the Internet, mobile computing, and high-speedwireless networks, users are accessing media on user equipment deviceson which they traditionally did not. As referred to herein, the phrase“user equipment device,” “user equipment,” “user device,” “electronicdevice,” “electronic equipment,” “media equipment device,” or “mediadevice” should be understood to mean any device for accessing thecontent described above, such as a television, a Smart TV, a set-topbox, an integrated receiver decoder (IRD) for handling satellitetelevision, a digital storage device, a digital media receiver (DMR), adigital media adapter (DMA), a streaming media device, a DVD player, aDVD recorder, a connected DVD, a local media server, a BLU-RAY player, aBLU-RAY recorder, a personal computer (PC), a laptop computer, a tabletcomputer, a WebTV box, a personal computer television (PC/TV), a PCmedia server, a PC media center, a hand-held computer, a stationarytelephone, a personal digital assistant (PDA), a mobile telephone, aportable video player, a portable music player, a portable gamingmachine, a smart phone, or any other television equipment, computingequipment, or wireless device, and/or combination of the same. In someembodiments, the user equipment device may have a front facing screenand a rear facing screen, multiple front screens, or multiple angledscreens. In some embodiments, the user equipment device may have a frontfacing camera and/or a rear facing camera. On these user equipmentdevices, users may be able to navigate among and locate the same contentavailable through a television. Consequently, media guidance may beavailable on these devices, as well. The guidance provided may be forcontent available only through a television, for content available onlythrough one or more of other types of user equipment devices, or forcontent available both through a television and one or more of the othertypes of user equipment devices. The media guidance applications may beprovided as on-line applications (i.e., provided on a web-site), or asstand-alone applications or clients on user equipment devices. Variousdevices and platforms that may implement media guidance applications aredescribed in more detail below.

In some embodiments, the media guidance application may retrieve a userprofile indicating content that is of interest to a user. For example,the media guidance application may determine whether a user profileexists by first identifying the user (e.g., login information, a pictureof the user (e.g., gained through a webcam), a hash value uniquelyidentifying the user or any other known identifying information of theuser), and then by comparing the user's identity against entries of auser profile database. As a result of the comparing, the media guidanceapplication may receive a pointer to a profile if one is located or mayreceive a NULL value if the profile does not exist. The user profiledatabase may be located remote or local to the media guidanceapplication and may be accessible to the media guidance application overa network connection. If a user profile is located, the media guidanceapplication may access database entries corresponding to previouslyviewed media by the user.

In some embodiments, the media guidance application may analyzepreviously viewed media to identify a pattern between the media. Forexample, the media guidance application may enumerate episodes of aseries to estimate user interest in a series. For example, the mediaguidance application may retrieve a user profile containing dataindicating that a user has watched 20 episodes of the television show“Game of Thrones.” The media guidance application may receive dataindicating that only 20 episodes of the television series “Game ofThrones” are currently available to the user. Based on a comparison ofthe number of episodes watched by the user to the number of episodescurrently available to the user, the media guidance application maydetermine that the user is interested in the television series “Game ofThrones.”

The media guidance application may access a remote or local databasecontaining metadata corresponding to the show “Game of Thrones” todetermine whether a user has viewed all possible episodes of “Game ofThrones.” If the user has not viewed all episodes of “Game of Thrones”(e.g., there are 30 episodes outstanding but the user only viewed 20),the media guidance may identify episodes 21-30 as media assets ofinterest to the user. In another example, the media guidance applicationmay retrieve data from a user profile indicating a list of favoritemedia content. The media guidance application may correlate the datawith media assets to identify media assets of interest to the user. Forexample, a listing of favorite musicians may be manually input by a uservia an input device connected to the media guidance application andstored in a user profile by the media guidance application. The mediaguidance application may identify a new album (i.e., media asset)corresponding to a musician from the listing of favorite musicians as amedia asset of interest to the user.

In some embodiments, the media guidance application may identify aplurality of media assets of interest to the user. For example, asdescribed above, the media guidance application may identify multipleepisodes of the television series “Game of Thrones” as media assets ofinterest to the user. In another example, the media guidance applicationmay identify a favorite series from a listing of favorite seriesmanually input by the user via an input device connected to the mediaguidance application and stored in the user's profile. The mediaguidance application may search a remote database, such as a cloud baseddatabase listing episodes of a series to identify a listing of episodesassociated with the series (i.e., a plurality of media assets ofinterest to the user).

In some embodiments, the media guidance application may receive apriority associated with a media asset of interest to the user. Forexample, the media guidance application may receive, via an input deviceconnected to the media guidance application an input indicating that thetelevision show “Game of Thrones” is a high priority series (i.e., thesubscriber greatly desires for the show “Game of Thrones” to be in arecommended subscription. The media guidance application may recognizethe “high priority” designation and may recommend a subscriptioncomprising episodes of the show “Game of Thrones” if episodes of theshow are not yet available to the user. In contrast, the media guidanceapplication may identify that the television show “House of Cards” is amedia asset of interest to the user but is a low priority series (e.g.,by identifying a low priority designation stored in the user profile orby enumerating a number of times a user watches the series).Accordingly, the media guidance application may identify a subscriptionin which episodes of the series “Game of Thrones” are available beforeidentifying a subscription in which episodes of the series “House ofCards” is available.

In some embodiments, the media guidance application may determine that amedia asset of interest to the user is currently unavailable. Forexample, the media guidance application may identify a media asset ofinterest to the user as described above. The media guidance applicationmay retrieve, from a remotely or locally accessible data source,information about media assets currently available to a user. Forexample, the media guidance application may access a television programschedule listing episodes of television shows that are scheduled fordisplay on channels subscribed to by a user. In another example, themedia guidance application may retrieve a listing of media available ondemand to a user. The media guidance application may compare the listingof media currently available to the user with the media asset ofinterest to the user to identify a match. If no match is found, themedia guidance application may determine that the media asset ofinterest to a user is currently unavailable.

In some embodiments, the media guidance application may compare themedia asset with database listing media assets that will becomeavailable from various content providers to identify a content providerfrom which the media asset will be available. For example, the mediaguidance application may access a remote or local database containinginformation about new media assets that will be available from eachcontent provider. For example, the media guidance application may accessa listing of television shows, movies, documentaries, etc., that willbecome available via HBO, Showtime, Hulu, etc., for the upcoming month,quarter, year, etc. Following with the previous example, the mediaguidance application may search the listing of upcoming programmingcorresponding to HBO, Showtime, Hulu, etc. for the television show “Gameof Thrones.”

The media guidance application may search databases associated withcontent providers with which a user does not have a media subscription.The media guidance application may determine that the television show“Game of Thrones” will become available from the content provider HBOand from the standalone streaming service HBO GO. In another example,the media guidance application may identify the movie “Pulp Fiction” asa media asset of interest to a user. The media guidance application mayidentify a plurality of content providers, each with the movie “PulpFiction” available at a future date.

In some embodiments, the media guidance application may search a subsetof content providers matching a user setting. For example, the mediaguidance application may retrieve a user preference indicating apreference for regularly scheduled programming over streaming or ondemand media. The media guidance application may filter contentproviders based on the user preference. For example, the media guidanceapplication may filter the content providers such that only contentproviders offering regular scheduled programming, as opposed tostreaming content providers, are identified.

In some embodiments, the media guidance application may infer asubscription setting preference corresponding to the user. For example,the media guidance application may access a viewing historycorresponding to the user in the user profile. The media guidanceapplication may identify that the user chooses to consume media assetson a television about 70% of the time by enumerating the viewing historyof the user. The media guidance application may identify a weighting,such as 0.7, to media assets which are formatted for viewing on atelevision and may give a weighting of 0.3 to media assets which areformatted for viewing on other devices (e.g., a mobile device orcomputer).

In some embodiments, the media guidance application may prompt the userfor content provider parameters, such as availability of on demandmovies, 3D content, commercial free media, etc. The media guidanceapplication may filter the content providers, such that contentproviders not matching content provider parameters requested by the usermay be excluded from the matching.

In some embodiments, the media guidance application may prompt a userfor parameters related to a desired subscription. For example, the mediaguidance application may prompt a user for a monthly budget dedicated tocontent subscriptions. The media guidance may determine, based on a userprofile associated with the user, a number of media assets that willlikely be of interest to the user based on the budget. For example, themedia guidance application may receive a budget of $30 per month fromthe user via an input device, such as a remote control. The mediaguidance application may identify all possible combinations of contentproviders that will remain at or under the $30 budget by, for example,querying a database of costs associated with content providers, summingthe cost of a combination of content providers, and comparing the costto the budget, while maintaining a total overall value for thesubscriptions (as described below). The media guidance application maygenerate for display a listing of the combinations of content providersfitting the budget.

In some embodiments, the media guidance application may determine avalue corresponding to a content provider based on a subscriptionsetting. For example, the media guidance application may determine thatthe user consumes media assets on a television 70% of the time asdescribed above. The media guidance application may further determinethat all media assets of interest to the user (e.g., 10 media assets)are available on content providers such as HBO and HBO GO. The mediaguidance application may determine a value for each respective contentprovider by, for example, summing the number of media assets of interestto the user that are available on television weighted by 0.7 and thenumber of media assets of interest to the user available in otherformats weighted by 0.3 corresponding to a respective content provider.The media guidance application may recommend a content provider having agreater value to the user. For example, the media guidance applicationmay determine that 10 media assets of interest to the user arerespectively available from HBO and HBO GO. The media guidanceapplication may multiply 10 (the number of media assets of interest tothe user available on a television from HBO) with 0.7 (the weight formedia assets available on a television) to compute a value of 7 for HBO.The media guidance application may multiply 10 (the number of mediaassets available for streaming from HBO GO) with 0.3 (the weight formedia assets available for streaming) to compute a value of 3. The mediaguidance application may compare the two values and may recommend or mayautomatically subscribe to a HBO subscription since the value of the HBOsubscription is greater than the value of the HBO GO subscription (7 v.3). This is just an exemplary subscription setting that may be used tocalculate a subscription value, one of ordinary skill would realize thatother subscription settings may be used such as quality of a media asset(e.g., based on resolution, bitrate, etc.), language availability,availability of subtitles, possible viewing locations (e.g., in home v.out of home availability), media aspect ratio, media asset genreavailability, availability of a specific media asset etc.

In some embodiments, other factors may be used to calculate the value,such as a priority of a media asset or availability of other recommendedmedia assets from a content provider. For example, the media guidanceapplication may apply a specific weighting to a media asset deemed tohave a higher priority than a media asset deemed to have a lowerpriority. Furthermore, the media guidance application may applyadditional weighting to the value if other media assets (e.g.,recommended media assets not explicitly identified by the user areavailable from the content provider). For example, the media guidanceapplication may add a fixed value, such as 0.5 to the number of mediaassets used to calculate the value (as described above). In anotherexample, the media guidance application may scale the value based on astrength of the recommendation. For example, the media guidanceapplication may determine that the television show “True Blood” matchesthe television show “Game of Thrones” by 80% (e.g., by comparingmetadata associated with the show “Game of Thrones” with metadataassociated with the show “True Blood” to determine that 85% of themetadata (such as genre, theme, etc.) matches that of “Game of Thrones”.Accordingly, the media guidance application may scale the value (0.5) by0.8 (a decimal representation of the percent “Game of Thrones” matches“True Blood”) and may use the scaled value (0.4) for in calculating thevalue as described above.

In some embodiments, the media guidance application may determine avalue cost based on a cost of a subscription. For example, the mediaguidance application may query a respective content provider for arespective cost associated with a subscription. For example, the mediaguidance application may receive a cost of $9 per month corresponding toHBO GO and a cost of $28 per month corresponding to a subscription ofHBO. The media guidance application may divide the respective cost of asubscription to a content provider with a respective value of asubscription to a content provider to compute a value cost for thecontent provider, wherein the value cost represents a requiredsubscription cost associated with each unit of value (as computed above)for the content subscription. For example, the media guidanceapplication determines an overall value for HBO by dividing therespective subscription cost ($28) with the respective value (ascomputed above) (7 units of value) to derive a value cost of $4 per unitof value. The media guidance application may determine an overall valuefor HBO GO by dividing the respective cost ($9) with the respectivevalue computed above (3 units of value) to compute a value cost of $3per unit of value. In this instance, the media guidance application mayrecommend a subscription to HBO GO since the dollar cost per unit ofvalue ($3 per unit of value) corresponding to HBO Go is less than thedollar cost per unit of value corresponding to HBO. However, this isjust an exemplary method for calculating a value cost. One of ordinaryskill in the art will realize that other methods for calculating valuemay be used. For example, the media guidance application may use othercost optimization methods to identify a subscription having the highestvalue for the user.

In some embodiments, the media guidance application may compare themedia asset with a database listing media assets that will becomeavailable from the content provider to identify a date on which themedia asset will become available from the content provider. Forexample, the media guidance application may access a schedule of mediaassets that will be available from a content provider in the future. Forexample, the media guidance application may access a programmingschedule corresponding to the channel HBO.

The media guidance application may search the programming schedule forthe television show “Game of Thrones.” The media guidance applicationmay identify an air date corresponding to an episode of the show “Gameof Thrones” on the channel HBO. In another example, the media guidanceapplication may identify a date on which the media asset of interest toa user is available on demand or through streaming. For example, themedia guidance application may identify a date corresponding to the dayon which the television show “Game of Thrones” becomes available forstreaming.

In some embodiments, the media guidance application may compare the datein a database listing date ranges associated with different subscriptionperiods to identify the date. For example, the media guidanceapplication may access a listing of date ranges for all currentlyavailable subscription periods. For example, the media guidanceapplication may determine that HBO offers monthly and yearlysubscriptions. The media guidance application may access a databasecontaining start and end dates for both the monthly and the yearlysubscriptions starting at various start dates. The media guidanceapplication may identify a subscription period that includes the datewhen the television show “Game of Thrones” becomes available.

In some embodiments, the media guidance application may calculate thestart and end dates corresponding to a subscription period. For example,the media guidance application may access a listing of subscriptionperiods offered by a content provider. For example, the media guidanceapplication may receive a listing of subscription periods offered by acontent provider (e.g., a month, three months, a year, etc.).Additionally, in an example, the media guidance application may receivea listing of start dates for a subscription. For example, the mediaguidance application may receive a start date (e.g., the first of themonth, the second Monday of the month, any date, etc.) for asubscription to become active. The media guidance application calculatesa subscription period such that it includes the date that the mediaasset of interest to the user is available. For example, the mediaguidance application may determine that the show “Game of Thrones”becomes available on HBO in 15 days. The media guidance application mayidentify a monthly subscription period, staring today, as thesubscription period, as the 30-day subscription period would include thedate (i.e., the date on which “Game of Thrones” begins) 15 days away.

In some embodiments, the media guidance application may determine thestart date based on a subscription budget. For example, the mediaguidance application may retrieve a subscription cost associated withthe content provider as $15 per month. The media guidance applicationmay receive a monthly budget to allocate towards media contentsubscriptions, such as a budget of $30 a month, from the user profiledata. The media guidance application may calculate the start bydetermining a date when the there is enough budget to subscribe to thecontent provider. For example, the media guidance application maydetermine that there are currently $28 worth of active subscriptions by,for example, querying a database comprising a listing of subscriptionscorresponding to the user and retrieving the costs associated with theactive subscriptions. The media guidance application may query thedatabase to identify an end date associated with a media contentsubscription (as described below) as well as an associated cost. Themedia guidance application may identify, based on the query, that a $20per month subscription will end on Friday. The media guidanceapplication may identify Saturday as a start date for the subscriptionto the content provider since Saturday is the first day where there isenough budget for the subscription to the content provider.

In some embodiments, the media guidance application may compare a valueassociated with the active subscriptions with the value. For example themedia guidance application may retrieve or may calculate a value (asdescribed above) for each of the active subscriptions for the user. Themedia guidance application may iteratively compare the value with avalue associated with each active subscription to determine if the valueis greater than a value of an active subscription. If the value isgreater than the value of an active subscription, the media guidanceapplication may request a cancellation of the active subscription havinga lower value than the value in order to replace the active subscriptionwith a subscription to the content provider. For example, following fromthe previous example, the media guidance application may determine avalue of 7 for a subscription to HBO. The media guidance application mayidentify that the user has an active subscription to Netflix and mayidentify the value of the Netflix subscription to the user as 5. Themedia guidance application may request cancellation of the Netflixsubscription and may subsequently request activation of a subscriptionto HBO.

In some embodiments, the media guidance application may compare thevalue of an active subscription with the value if adding a subscriptionto the content provider will surpass the budget. For example, the mediaguidance application may identify a monthly budget of $30 as describedabove. The media guidance application may sum the cost associated withthe active subscriptions to identify $28 worth of active subscriptions.The media guidance application may compare the value of the activesubscriptions with the value of a subscription to the content providerif the cost of adding a subscription to the content provider (e.g., $30in addition to the $28 of active subscriptions) would surpass the budget(e.g., $30). The media guidance application may automatically cancel anactive subscription having a lower value a subscription to the contentprovider in order to add a subscription to the content provider.

In some embodiments, the media guidance application may determine thesubscription period based on the date that the last of a plurality ofmedia assets will become available. For example, the media guidanceapplication may determine that a plurality of episodes of the show “Gameof Thrones” are of interest to a user. The media guidance applicationmay identify a date that each of the episodes of the show is firstavailable. The media guidance application may determine a subscriptionperiod such that the subscription period includes the latest availablemedia asset of interest to the user. For example, the media guidanceapplication may determine that the television show “Game of Thrones” has10 episodes that will become available once weekly beginning in Februaryand ending in April. The media guidance application may select aquarterly subscription period as the period may comprise the start datesof all 10 episodes (i.e., 10 weeks) of the show “Game of Thrones.”

In some embodiments, the media guidance application may determine thenumber of media assets that are of interest to a user that becomeavailable from the content provider during the subscription period. Forexample, the media guidance application may determine the number ofepisodes of the television show “Game of Thrones” that are availableduring various subscription periods. For example, the media guidanceapplication may determine that four episodes of “Game of Thrones” becomeavailable to a user over a subscription period of a month, ten episodesbecome available over the subscription period of three months and,likewise, 10 episodes become available over the subscription period of ayear. As an example, the media guidance application may select the threemonth period as the media guidance application calculated diminishingmarginal returns on the longer subscription periods (i.e., the amount ofadditional media assets of interest to the user (marginal return)decreases with increasing subscription period).

In some embodiments, the media guidance application may compare thenumber of media assets of interest to a user that become available fromthe content provider during the subscription period to a thresholdnumber. For example, the media guidance application may access athreshold value from a memory indicating a minimum number of mediaassets requested during a subscription period. For example, the mediaguidance application may receive a number of media assets requested by auser, such as 10 movies, from a memory associated with the mediaguidance application, in a user profile associated with the user. Thethreshold number may be input by a user to the database or may bepre-assigned upon creation of the user profile.

In another example, the threshold number may be computed based on userviewing characteristics. For example, the media guidance application maydetermine the threshold number by calculating an average number of mediaassets consumed by a user over a subscription period. For example, themedia guidance application may determine that a user consumes on averagethree media assets a day. The media guidance application may determine athreshold for a month long subscription period to be 90 media assets(i.e., three media assets times 30 days). The media guidance applicationmay search for content providers that may have in a media library aminimum of 90 media assets of interest to the user over the subscriptionperiod.

In another example, the media guidance application may calculate thethreshold by factoring in other subscriptions. For example, in theexample where the user consumes on average ninety media assets permonth, the media guidance application may factor in a current usersubscription to a content provider wherein the user consumes twentymedia assets per month. Therefore, the media guidance application maycalculate the threshold number to be seventy media assets (i.e., 90media assets per month minus the 20 media assets per month alreadyconsumed by the user on another current subscription). The mediaguidance application may search for a content provider that may have 70media assets of interest to the user available during the subscriptionperiod.

In some embodiments, the media guidance application may, based on anumber exceeding the threshold number, select the subscription period.For example, the media guidance application may select a subscriptionperiod such that a threshold minimum number of media assets of interestto the user are available throughout the subscription period. In anexample, the media guidance application may determine that the number ofmedia assets of interest to a user during the subscription periodexceeds an average number of media assets consumed by the user duringthe subscription period (e.g., a user usually consumes thirty mediaassets per month but there are 50 media assets of interest to the userin the monthly subscription). The media guidance application mayautomatically extend the subscription period such that the user mayconsume all media assets that are of interest. Following from theprevious example, the media guidance application may extend thesubscription period to two months so that all 50 media assets ofinterest to the user may be consumed by the user.

In some embodiments, the media guidance application may determine astart date for the subscription. For example, as described above, themedia guidance application may retrieve start dates (e.g., beginning ofthe month, beginning of the year, anytime) associated with mediasubscriptions to the content provider. For example, the media guidanceapplication may identify that HBO allows users to subscribe at any timeof the month. The media guidance application may identify today as thestart date for a monthly subscription period if the media guidanceapplication calculates that the start date of the media asset ofinterest to the user is less than a month away.

In some embodiments, the media guidance application may suggest delayingthe subscription. For example, the media guidance application maydetermine that a media asset of interest to the user will becomeavailable in 45 days. The media guidance application may determine thestart date of a monthly subscription to be at least 15 days away suchthat the subscription period (e.g., 30 days) comprises the date themedia asset of interest to the user becomes available.

In some embodiments, the media guidance application may generate fordisplay an option to modify the recommended subscription. For example,the media guidance application may generate for display a user option toincrease or decrease the length of a recommended subscription period. Inanother embodiment, the media guidance application may generate fordisplay a user option to modify the start date of a subscription. Forexample, in some instances the media guidance application may recommenda one-month subscription for Netflix to a user. The media guidanceapplication may generate for display an option allowing the user toincrease or decrease the length of the subscription or to change thestart date of the subscription. The media guidance application maydetect the modified parameters of the subscription at an input deviceaccessible to the media guidance application (e.g., such as recognizingtouch input on a touchscreen, or receiving an Ethernet packet containingthe modified parameters). In accordance with the detected parameters,the media guidance application may modify the subscription. These arejust exemplary embodiments of tweaking a subscription; other options maybe presented to the user to modify the recommended subscription.

In some embodiments, the media guidance application may generate fordisplay, on a display screen, a reminder to the user to request accessto the content provider on the start date. For example, the mediaguidance application may generate for display on a display screenaccessible via the media guidance application a message informing theuser to request access or subscribe to the content provider on the startdate. In another example, the media guidance application may display areminder to the user before the start date.

In some embodiments, the media guidance application may generate fordisplay an option to subscribe to the content provider with the remindermessage. For example, the media guidance application may generate fordisplay an icon within the reminder to automatically subscribe the userto the content provider on the determined start date for the determinedsubscription period. For example, the media guidance application mayrecommend to a user a one-month subscription to the channel HBO. Themedia guidance application may generate for display an icon that a usermay click (e.g., using a mouse, a touch screen, remote control, etc.) tosign up for the HBO subscription. The media guidance application maydetect the user input indicating a click of the icon and may process therequest to sign-up to a media provider. In another example, the mediaguidance application may display a hyperlink to a website configured toprocess a subscription request. For example, the media guidanceapplication may generate for display a link to a website, such as a linkto a Hulu sign-up page, where a user may complete a subscription sign-upprocess.

In some embodiments, the media guidance application may request accessto the content provider on the start date. For example, the mediaguidance application may transmit a packet to the to a content providerrequesting access to the content provider on the start date withoutrequiring user input. In another example, the media guidance applicationmay request access to the content provider on the start date in responseto receiving input from a user instructing the media guidanceapplication to request access on the start date. For example, the mediaguidance application may receive user input indicating a request tosubscribe to the content provider in response to generating thereminder.

In some embodiments, the media guidance application may generate fordisplay the date at which the media asset becomes available from thecontent provider with the reminder. For example, the media guidanceapplication may display a date (e.g., a date which a media asset that isof interest to the user becomes available) such that the user isnotified of the date. In an example, the media guidance application maydisplay a pop-up message with the date along with a reminder.

In some embodiments, the media guidance application may automaticallyrequest a subscription to a content provider (as described above) suchthat the media guidance application will have access to the mediacontent of interest to the user on the start date. For example, themedia guidance application may transmit a query to the content providerrequesting a new account. The media guidance application mayautomatically create an account for the user using the name and contactinformation for the user (e.g., as retrieved by the media guidanceapplication from the user profile) or may create a new generic account(e.g., an account registered to the media guidance application orsimilar).

In some embodiments, the media guidance application may generate fordisplay a recommendation for an additional media asset that is similarto the media asset and available from the content provider before thedate. For example, the media guidance application may access a listingof media assets that that are currently available from the mediaprovider. The media guidance application may identify media assets thatare similar to the media asset of interest to the user by, for example,comparing metadata of the media asset of interest to metadata of themedia assets that are currently available from the media provider. Asanother example, the media guidance application may retrieve a listingof media assets that will become available from the content providerbetween the current date and the date that the content of interest tothe user becomes available. The media guidance application may receive,from a user profile, a listing of media assets of interest to the user,such as a list of favorite programs. The media guidance application maysearch the list of media assets that will become available for mediaassets from the list of favorite programs.

In some embodiments, the media guidance application may generate fordisplay a reminder, including a recommendation for an additional mediaasset that is currently available from the provider. For example, themedia guidance application may search a schedule or listing of VODprograms for a media asset to recommend to a user. For example, themedia guidance application may retrieve metadata corresponding to themedia asset of interest to the user such as a genre, a list ofperformers, etc. The media guidance application may search a schedule ofVOD program listings corresponding to the content provider for assetsmatching the portion of the retrieved metadata. When a match is found,the media guidance application may recommend the media asset to theuser.

In some embodiments, the media guidance application may generate fordisplay on a display screen accessible to the media guidance applicationa reminder on the start date. For example, the media guidanceapplication may generate for display a pop-up notification on a displayscreen accessible to the media guidance application containing areminder to the user to subscribe to the content provider on the startdate. In another example, the media guidance application may generatefor display on a display screen accessible to the media guidanceapplication a window requiring user action to dismiss the reminder onthe start date of the program of interest to the user.

In some embodiments, the media guidance application may generate fordisplay on a display screen accessible to the media guidance applicationa reminder before the start date. For example, the media guidanceapplication may generate for display a pop-up message on a displayscreen associated with the media guidance application informing a userto subscribe to the content provider. In another example, the mediaguidance application may generate a text message containing a reminderto subscribe to the content provider and send said text message beforethe start date. In another example, the media guidance application maygenerate an email reminder to the user to subscribe to the contentprovider. The media guidance application may transmit the email reminderprior to the start date.

In some embodiments, the media guidance application may determine thenumber of days between the date the media of interest to the userbecomes available and the start date. For example, the media guidanceapplication may compute a start date, as described above, and maydetermine a date on which the media of interest to the user becomesavailable. The media guidance application may subtract the start datefrom the date the media of interest to the user becomes available todetermine a number of days between the two dates.

In some embodiments, the media guidance application may generate fordisplay, on a display screen, media asset recommendations based on thenumber of days. For example, the media guidance application may modifythe number of recommendations provided to the user based on the numberof days. In an example, the media guidance application may access a userprofile to determine the number of media assets consumed by a user by,for example, accessing a field indicating the total number of mediaassets consumed by a user in the past month. The media guidanceapplication may estimate the number of media assets consumed by the userper day by, for example, dividing the number of media assets retrievedfrom the profile by the number of days in a month. In an example, themedia guidance application may determine that a user has consumed 15media assets in the past month. The media guidance application maydivide 15 by 30 days in the month to determine that the user watched onaverage 0.5 media assets per day. Based on the estimated number of mediaassets consumed by the user per day, the media guidance application mayprovide a proportional number of recommendations. For example, the mediaguidance application may recommend media assets on a one-to-one ratio.

Following from the previous example, if it is determined that there are10 days between the start date and the date that the media asset ofinterest to the user becomes available, the media guidance applicationmay recommend five media assets to the user. In another example, themedia guidance application may provide a number of media assetrecommendations based on a ratio of the number of days. For example, themedia guidance application may automatically display a recommendationfor each day of the days. Following from the previous example, if it isdetermined that the number of days is 10, the media guidance applicationmay recommend 10 media assets to the user. In another example, the mediaguidance application may prompt the user for a number of recommendationsbased on the number of days. For example, the media guidance applicationmay inform the user that the number of days is 10. The media guidanceapplication may prompt the user to input a number of recommendationsdesired by the user over the course of the 10 days.

In some embodiments, the media guidance application may prompt the userfor a ratio used to determine the number of media assets to berecommended. For example, the media guidance application may generatefor display on a display screen accessible to the media guidanceapplication a prompt with the number of days (e.g., 10). The mediaguidance application may prompt the user to input how manyrecommendations they want per day (e.g., 0.5, 1, 2). Based on the numberinput by the user, the media guidance application may recommend a numberof media assets.

In some embodiments, the media guidance application may determine a dayof the week between the date and the start date. For example, the mediaguidance application may determine a day of the week associated with thestart date and a day of the week associated with the day the media assetof interest to the user becomes available. The media guidanceapplication may determine a day of the week by randomly selecting a dayof the week between the two days. In another example, the media guidanceapplication may identify a day of the week by accessing a user profileassociated with a user.

The media guidance application may identify a day of the week in which auser most frequently consumes media assets. The media guidanceapplication may select that day of the week. In the event that the dayof the week the user consumes the most media assets is not within thetwo days (e.g., the user consumes the most media assets on Friday butonly Tuesday and Wednesday are between the date and the start date), themedia guidance application may select the day of the week on which theuser consumes the second most media assets. This process may continueuntil day of the week is selected.

In some embodiments, the media guidance application may determine theday of the week based on the availability of content from a contentprovider. For example, the media guidance application may select a dayof the week that has the most content available to the user matching auser profile characteristic. For example, the media guidance applicationmay retrieve from a user profile data indicating a user preference forhorror movies. The media guidance application may access a databasecontaining metadata related to the media assets offered by a contentprovider corresponding to each day of the week. The media guidanceapplication may search the database for media assets matching the horrorgenre to identify a day of the week (e.g., Friday) having the mosthorror movies available to the user. The media guidance application mayselect the day of the week (e.g., Friday) to provide a recommendation toa user.

In some embodiments, the media guidance application may generate fordisplay, on a display screen, a recommendation for an additional mediaasset based on the day of the week. For example, the media guidanceapplication may select Friday as the day of the week as described above.The media guidance application may compare metadata corresponding to themedia asset of interest to the user with media assets corresponding tothe day of the week, by, for example, accessing a database correspondingto a schedule of media assets available on the day of the week. Forexample, the media guidance application may identify “Austin Powers:International Man of Mystery” staring Mike Myers as a media asset ofinterest to the user. The media guidance application may search aschedule or VOD program listing of media assets available on Friday forother media assets starring Mike Myers. The media guidance applicationmay identify “Wayne's World” (also starring Mike Myers) as available tothe user on Friday. The media guidance application may generate fordisplay on a display screen accessible to the media guidance applicationa recommendation for the media asset “Wayne's World.”

In some embodiments, the media guidance application may determine if theuser is currently subscribed to the content provider. For example, themedia guidance application may retrieve user profile data indicatingwhether a user has had a subscription to a content provider and whetherthe subscription is current. As another example, the media guidanceapplication may query a server or computer, such as a servercorresponding to the content provider, to request a status of a user'ssubscription.

For example, the media guidance application may generate a query with afield containing a number uniquely identifying a user or user accountand a request to retrieve a status for the account. The media guidanceapplication may transmit the query over a network connection accessibleto the media guidance application. In another example, the mediaguidance application may transmit a query to a database containing thesubscription status for a plurality of subscriptions corresponding to auser. The media guidance application may generate a query to thedatabase to request a status of the subscription corresponding to thecontent provider. In an example, if a user is not currently subscribedto a provider, a user may receive a NULL response from the server.

In some embodiments, the media guidance application may determine an enddate of a current subscription period of the user. For example, themedia guidance application may store, in a database of user subscriptioninformation, information about the subscription period and a start dateof a subscription. The media guidance database may calculate the enddate of the current subscription by adding the start date of thesubscription with the subscription period. In another example, the mediaguidance application may query a remote server for the end date of thesubscription. For example, the media guidance application may generate aquery containing an identifier uniquely identifying a user or a useraccount along with a request for an end date of a current subscription.

In some embodiments, the media guidance application may generate fordisplay, on a display screen, the reminder to the user to request accessto the content provider on the end date. For example, the media guidanceapplication may determine that a user subscription to a content providermay end on Friday. The media guidance application may display a reminderto the user, on or before Friday, to request access to the contentprovider on the end date (e.g., Friday).

In some embodiments, the media guidance application may remind a user tonot request access to the content provider on the end date. For example,the media guidance application may detect a change in user preferenceswhich may alter the content providers recommended by the media guidanceapplication. For example, the media guidance application may detect achange in a user profile data, such as detecting a change in a list offavorite media assets, indicating that media assets from a contentprovider are no longer a user favorite. The media guidance applicationmay recommend to a user to not request access from a content provider onthe end date. In another example, the media guidance application maydisplay a reminder to the user to cancel access to a content providerbefore the end of a current subscription period. For example, the mediaguidance application may generate for display, on a display screen, areminder to the user to cancel access to a content provider based on achange in a user preference.

In some embodiments, the media guidance application may manage useraccess requests to each of the content providers. For example, the mediaguidance application may control requests for access to a media libraryfrom a content provider. For example, a user may use an input device,such as a touch screen of a tablet device, accessible to the mediaguidance application. The media guidance application may receive userinput to subscribe to a specific content provider, such as HBO. Themedia guidance application may, without further user input, relaycontact information about a user, a subscription period, a start date,etc. to the contact provider (HBO) to establish an account and/or beginpayment for access to the content library.

In some embodiments, the media guidance application may automaticallymanage access to multiple content providers. For example, the mediaguidance application may automatically determine start and end dates foraccess to content provided by content providers. The media guidanceapplication may communicate, without requiring user input, with serverscorresponding to the content providers to manage user access to a medialibrary of a content provider. For example, the media guidanceapplication may automatically sign up a user for an HBO subscription,when recommended (as described above) by the media guidance application,and may cancel the HBO subscription when recommended (e.g., determinethe subscription period, as described above) by the media guidanceapplication.

In some embodiments, the media guidance application may actively managesubscriptions to maintain a threshold average overall value for allsubscriptions. For example, the media guidance application may determinethat the user is willing to spend $2 per month per high priority mediaassets of interest to the user available in that month. The mediaguidance application may identify all the high priority media assetsavailable to a user in a given month and may adjust the budgetaccordingly (e.g., adjust the budget to be the number of available highpriority media assets times $2). The media guidance application mayautomatically sign up for or recommend media content subscriptions tothe user if a total cost of the subscriptions is not greater than thebudget. In another example, the media guidance application may managesubscriptions on a fixed budget. For example, the media guidanceapplication may identify a fixed $30 budget per month as describe above.The media guidance application may maximize a value of the subscriptionsfor the user by, for example, prioritizing subscriptions for highpriority media assets of interest to the user or by identifyingsubscriptions to content providers having the best value cost asdescribed above (e.g., lowest per dollar cost per unit of value).

In some embodiments, the media guidance application may prompt a user toselect a subscription from a list of content providers. For example, themedia guidance application may display a listing of content providersand subscriptions to which the user does not have access (e.g., byquerying content providers as to whether a user account exists for theuser). The media guidance application may receive user input selectingone or more content providers to which the user wants access. The mediaguidance application may automatically establish an account for the userfor a selected content provider as described above.

In some embodiments, the media guidance application may prompt a user tocancel a subscription to a content provider. For example, media guidanceapplication may determine that a user has not consumed media from acontent provider in a threshold number of days (e.g., a threshold numberof days chosen by a user, stored in the user account). The mediaguidance application may display a listing of all content providers towhich the user has access, (e.g., by accessing a user profile containingdata identifying providers to which the user has access). The mediaguidance application may receive user input containing a cancelationrequest for a subscription to a content provider. The media guidanceapplication may automatically cancel a user account associated with thecontent provider as described above.

In some embodiments, the media guidance application may recommendvarious levels of subscriptions based on the user's historical viewinghabits. For example, the media guidance application may retrieve, fromthe user profile, a history of services, channels, apps, etc.,frequently accessed by the user. The media guidance application mayrecommend a number of services based on the history. For example, themedia guidance application may determine that the user frequently usesan HBO Go app, a Netflix app and a DirecTV app for streaming media.Based on the history, the media guidance application may recommend tothe user that the user subscribes to HBO Go, Netflix and DirecTV, andmay provide the user with a price quote for subscriptions for the threecontent providers.

In some embodiments, the media guidance application may aggregate anumber of content providers into a package. For example, the mediaguidance application may determine, based on the user profile (e.g., bydetermining that a threshold percentage of media assets consumed by theuser are movies), that a user is a frequent movie watcher. The mediaguidance application may recommend a pre-configured movie package, suchas a package containing all content providers offering movies, to theuser.

In some embodiments, the media guidance application may establishdiscounts with the content providers included in the package and mayforward all or a portion of the discount onto the subscriber, such thatthe cost of the aggregated movie content providers is less thansubscriptions to each of the movie content providers separately.

In some embodiments, the media guidance application may recommendmultiple packages to a user. For example, the media guidance applicationmay determine that a user frequently watches movies and sports programs,based on the user profile (e.g., by accessing preference data input by auser). The media guidance application may recommend a movie and sportspackage to the user, which includes subscriptions to all contentproviders offering sports and movie media. The media guidanceapplication may generate a single bill for both media packages.

In some embodiments, the media guidance application may estimate anumber of media assets expected to be of interest to the user for acombination of content providers. For example, the media guidanceapplication may enumerate the number of media assets expected to be ofinterest to the user by, for example, accessing user profile dataindicating media preferences of the user and enumerating the number ofmedia assets matching the preference that are scheduled to be availablefrom the combination of content providers. The media guidanceapplication may sort the list of combinations based on an expectednumber of media assets that are of interest to the user for eachrespective combination. In another example, the media guidanceapplication may display a number of media assets expected to be ofinterest to the user for each content provider of the combination. Forexample, the media guidance application may identify a combination ofHBO and Cinemax and may display a number of media assets expected to beof interest to a user from HBO and a number of media assets expected tobe of interest to the user from Cinemax.

In some embodiments, the media guidance application may manage billingfor multiple content providers. For example, the media guidanceapplication may receive access charges from all content providerscurrently accessible to the user. For example, the media guidanceapplication may receive bills related to an HBO, Netflix, and Huluaccount. The media guidance application may generate a single bill tothe user (e.g., a single monthly bill containing the charges from allcontent providers). In some examples, the media guidance application maycharge an additional service fee in addition to the fees charged by thecontent providers. In some embodiments, the bills generated by thecontent providers may be accessible to the user (e.g., via an accountportal or website associated with the media guidance application). Insome embodiments, the media guidance application may not make the useraware of subscriptions to content providers made in the user's name. Insome embodiments, the media guidance application may allow a user tomanage subscriptions to various content providers directly in aninterface provided by the media guidance application (e.g., via anaccount portal or website associated with the media guidanceapplication). In some embodiments, the media guidance applicationenables a user to download and view a bill associated with a contentprovider. For example, the media guidance application may providewebpage from which the user may download a bill corresponding to aspecific content provider.

In some embodiments, the media guidance application may automaticallybill customers for charges from multiple content providers. For example,the media guidance application may automatically draw funds from anaccount associated with a user when a bill becomes due. As an example,the media guidance application may access a profile associated with auser having payment information, such as bank account or credit cardinformation. The media guidance application may receive bills fromvarious content providers (e.g., at the beginning of a billing period)and may automatically pay the bills as they become due from a fundingsource associated with the user (e.g., a bank account linked to the userprofile).

In some embodiments, the media guidance application may request paymentfrom a user. For example, the media guidance application may display aprompt on a display screen associated with the media guidanceapplication requesting payment of a bill associated with one or morecontent providers. Upon receipt of user input authorizing a payment, themedia guidance application may allocate funds to the appropriate contentproviders. For example, the media guidance application may pay the billfor each content provider as the bill is authorized by the user.

In some embodiments, the media guidance application may offer discountsfor subscribing to multiple content providers. For example, the mediaguidance application may offer users a discount for subscribing to bothHBO and Cinemax (a sister channel of HBO). The discount may be providedthrough a sponsorship from the content providers. As an example, bothCinemax and HBO may offer users a discount when the two contentproviders are subscribed to simultaneously. The media guidanceapplication may rank or recommend content providers based on a relativesponsorship. For example, if the savings associated with a HBO andCinemax subscription are greater than the savings associated with an HBOand Showtime subscription, the media guidance application may recommenda HBO and Cinemax subscription.

In some embodiments, the media guidance application may recommendadditional hardware to a user based on user profile data. For example,the media guidance application may determine that a user prefers towatch movies that are available on either the combination of HBO andCinemax or on Netflix. However, the user may only have access tohardware capable of accessing HBO and Cinemax. The media guidanceapplication may recommend for a user purchase of a streaming capabledevice, such as an Amazon Fire TV or a Roku, so that the user maybenefit from a possibly lower subscription cost of Netflix over thecombination of HBO and Cinemax.

In some embodiments, the media guidance application may aggregatecontent from providers to which a user has access in a single interface.For example, the media guidance application may determine that a userhas access to content providers such as HBO, Cinemax and Hulu. The mediaguidance application may generate an icon, a list element, etc., thatlinks to media assets associated with HBO, an icon, a list element,etc., that links to media assets associated with Cinemax, and an icon, alist element, etc., that links to media assets associated with Hulu in asingle interface. In some embodiments, selection of an icon associatedwith Cinemax will provide a list of media assets associated with Cinemax(e.g., without exiting the media guidance application or launching aCinemax application). In some embodiments, the media guidanceapplication may launch a separate application associated with eachcontent provider. For example, selection of an icon associated withCinemax may launch a Cinemax application. In another example, selectionof an icon associated with Cinemax may begin playback of a media assetassociated with Cinemax from a Cinemax application.

In some embodiments, the media guidance application may aggregate allcontent to which a user has access. For example, the media guidanceapplication may aggregate all content in a single interface. Forexample, the media guidance application may list all media assetsavailable to a user (i.e., regardless of the content provider) in analphabetical list, a listing by genre, by director, etc. In someembodiments, the media guidance application may generate for display anidentifier corresponding to the content provider. For example, the mediaguidance application may generate for display text or a graphicidentifying the content provider. For example, the media guidanceapplication may generate, on a listing associated with a media asset, alogo, such as an HBO logo, on a media asset where HBO is the contentprovider.

In another example, the media guidance application may, as perceived bythe user, disassociate content with a provider. For example, the mediaguidance application may eliminate identifiers that associate a mediaasset with a specific content provider.

In another example, the media guidance application may enable asearching function that performs a search of all media assets accessibleto a user (i.e., regardless of content provider). In some embodiments,the media guidance application may identify a media asset to which theuser currently does not have access but will have access at a laterdate. The media guidance application may generate for display the mediaasset in search results.

In some embodiments, the media guidance application may negotiate andmanage subscriptions between a user and a content provider. For example,the media guidance application may analyze user profile data to identifya user profile characteristic that is of interest to a content provider(e.g., demographic data, how frequently a user views commercials, etc.).Based on the identified profile characteristic, the media guidanceapplication may determine how closely the user matches a profilecharacteristic of interest to the content provider. The media guidanceapplication may negotiate subscription terms with the content providerin order to optimize the subscription value for both the contentprovider and the user (i.e., by lowering the subscription cost to theuser and by incentivizing the user the subscribe to the contentprovider.

In some embodiments, the media guidance application may retrieve a userprofile from memory as described above. In some embodiments, the userprofile is retrieved from memory in response to detecting that a user isgoing to cancel a subscription to a content provider. For example, themedia guidance application may detect a user request to end asubscription to a content provider. The media guidance application maysearch a database of media assets available from a plurality of contentproviders to identify a plurality of media assets matching a userpreference in the user profile. For example, the media guidanceapplication may enumerate genres of media assets viewed by a user (e.g.,as noted in a viewing history of the user profile). The media guidanceapplication may identify horror movies as a most frequently viewed genrefor the user. The media guidance application may search for all mediaassets accessible to the user for media assets matching the horrorgenre.

In some embodiments, the media guidance application may search mediaassets not yet accessible to a user (e.g., media assets for which a userdoes not have a subscription). For example, the media guidanceapplication may search a database of media assets corresponding to acontent provider to which a user does not have a subscription for mediaassets matching the horror genre.

In some embodiments, the media guidance application may identify a firstsubset of the plurality of media assets available from a first contentprovider of the plurality of content providers, wherein the userrequires a first subscription to the first content provider to accessthe first subset. For example, the media guidance application mayidentify a first subset of media assets, such as the subset of mediaassets available from the first content provider. The media guidanceapplication may select a first content provider by, for example,enumerating a number of media assets matching the horror genre for eachcontent provider and may select a content provider having the most mediaassets matching the horror genre. The media guidance application mayidentify a content provider to which a subscription is required. Forexample, the first content provider may require a monthly subscriptionpayment in exchange for access to media content. In some embodiments,the media guidance application may pay a minimal (e.g., $0) subscriptioncost to browse a library of media assets but may need to pay a fee toaccess a particular media asset. For example, the media guidanceapplication may pay the content provider a $0.99 subscription cost toview and browse a media library provided by the content provider. Foreach media asset accessed by the media guidance application, the contentprovider may charge an additional $0.50 fee. In some embodiments, themedia guidance application may detect multiple subscription optionscorresponding to a content provider. For example, the media guidanceapplication may detect a subscription whose terms allow unlimited accessto media assets for $20 per month, or, in another example, asubscription whose terms allow streaming five media assets per month for$2.

In some embodiments, the media guidance application may retrieve firstuser profile characteristics of interest to the first content provider.For example, the media guidance application may retrieve characteristicssuch as demographic data, viewing history, price preferences, rate ofmedia consumption, preferences for commercials, and retail purchaseinformation. The media guidance application may use this information to,for example, match a user that a content provider would be mostinterested in acquiring, based on the user profile characteristics, toan appropriate subscription for that user, based on user likes andinterests or other profile data.

In some embodiments, the media guidance application may infer userprofile characteristics that may be of interest to a provider. Forexample, the media guidance application may search the media assetsavailable from a content provider and may determine that the contentprovider only offers media assets having commercials. The media guidanceapplication may identify that a user profile characteristic of interestto the content provider may be a user who watches commercials. Inanother example, the media guidance application may query a contentprovider for features and capabilities of the content provider. Forexample, the media guidance application may inquire whether a contentprovider has media assets having surround sound audio or closedcaptions. The media guidance application may determine that a contentprovider having surround sound capabilities may be more interested inacquiring users who most frequently consume media on a television (e.g.,as opposed to a laptop or tablet). In another example, the mediaguidance application may detect that a content provider does not haveclosed caption capabilities. The media guidance application maydetermine that a user profile characteristic of interest to the contentprovider may be that a user profile does not indicate a hearingimpairment.

In some embodiments, the media guidance application may compare thefirst user profile characteristics to the user profile. For example, themedia guidance application may identify a first user characteristic,such as a characteristic that a user watches advertisements beforevideos at least a threshold percentage of time. The media guidanceapplication may compare the user profile characteristic to the userprofile by identifying a percentage of time a user watched anadvertisement that was presented to the user. The media guidanceapplication may compare the identified percentage to the threshold todetermine whether the identified percentage is above the threshold(i.e., the user profile matches the user profile characteristic). Themedia guidance application may retrieve the threshold from memory or mayquery the content provider for the threshold (e.g., via a packettransmitted over a communication network). As another example, the mediaguidance application may detect that a user profile characteristic ofinterest to the user is that the user understands English (e.g., themedia guidance application may detect that all media assets availablefrom a content provider are only available in English). The mediaguidance application may search the profile of a user for dataidentifying languages understood by the user. In some instances, themedia guidance application may detect that a user has not indicated alanguage in his or her user profile. The media guidance application mayanalyze a history of media assets consumed by the user to identify alanguage associated with each media asset in the history. The mediaguidance application may enumerate the number of media assets matching aparticular language and, based on the enumeration, identify a languagemost frequently consumed by the user. The media guidance application mayperform a similar comparison for each user profile characteristic ofinterest to the content provider.

In some embodiments, the media guidance application may normalize theuser profile characteristics to come up with a range. For example, themedia guidance application may evaluate a user profile characteristicfor all users of the system, such as an income, and may normalize theincome for all users. Based on the data collected from all the users(e.g., all incomes), the media guidance application may create anormalization function, such that by applying the normalizing functionto a distribution of all income values for all users the distributionwill be normal. The media guidance application may use normalized incometo determine a range of incomes of interest to the content provider, by,for example, using the incomes within one standard deviation from themean income as the range.

In some embodiments, based on comparing the first user profilecharacteristics to the user profile, the media guidance application maydetermine a degree to which the first user profile characteristicscorrespond to the user profile. In an example, the media guidanceapplication may identify a content provider that generates revenue bysolely advertising local concerts. The media guidance application mayidentify user profile characteristics of users who like local concertsby automatically analyzing data corresponding to a global user databaseto identify a target demographic of users who would most likely watchand/or purchase the advertised local concert tickets. For example, themedia guidance application may access a local or remote databasecomprising information related to all users who watch advertisements.Accessing on the database information, the media guidance applicationmay identify all users who proceeded to watch an advertisement for alocal concert or purchase advertised local concert tickets. In anexample, the media guidance application may identify a targetdemographic age by, for example, retrieving the age of all users whowatched a local concert advertisement or purchased advertised localconcert tickets, summing the ages and dividing by a number of users. Inan example, the media guidance application may identify the targetdemographic as comprising user profile characteristics such as an age orage range (e.g., 40 or 40-50 years old), gender (e.g., male), income(e.g., between $1,000 and $1,500 per week), and geographic location(e.g., close proximity to a concert stadium). The media guidanceapplication may identify the user profile characteristics of the targetas being of interest to the content provider.

In some embodiments, the media guidance application may determine adegree to which the first user profile characteristics correspond to theuser profile by comparing each profile characteristic to thecorresponding user profile data, and, based on the comparison, assigninga score to the comparison. The media guidance application may use thescore as a degree by which a specific profile characteristic correspondsto the user profile.

In an example, the media guidance application may retrieve user profiledata indicating that the user is a 55 year old female living inSecaucus, N.J., who earns $1,250 per week. The media guidanceapplication may first compare the user's age (e.g., 55 years old) to theage of interest to the content provider (e.g., 40-50 years old) andassign a score indicating a distance that the user's age is from therange. For example, the media guidance may compute the score bysubtracting 2 points out of 100 points for every year that the age isabove the range and 3 points out of 100 points for every year that theage is below the range. However, one skilled in the art will realizethis is just one exemplary way to calculate a score. Many other methodsmay be used to determine a score. In this example, the media guidanceapplication may assign the user a score of 90 points out of 100 for adegree the user's age matches the age of interest to the contentprovider.

In another example, the media guidance application may compare theuser's gender (e.g., female) to the gender of interest to the contentprovider (e.g., male) and may assign a gender match score of zero out of50 since the two genders did not match. In this example, the number oftotal points used in the gender score may be lower than the total numberof points used in the age score as the media guidance application mayidentify gender to be half as important of a user profile characteristicas age (i.e., the total number of points (or weight) assigned to thegender user profile characteristic is half that of the age user profilecharacteristic). For example, the media guidance application maydetermine that gender is a less important user profile characteristicthan age by generating statistics for users who watch an advertisementfor a local concert or purchase advertised local concert tickets, asdescribed above, and identifying that varying age causes morestatistically significant variation in a number of advertisementswatched or tickets bought than varying gender.

In another example, the media guidance application may compare theincome of the user (e.g., $1,250 per week) to the income of interest tothe media content provider (e.g., between $1,000 and $1,500 per week)and may assign an income score of 100 out of 100 points, since theuser's income is within the income of interest to the media contentprovider.

In another example, the media guidance application may compare thegeographic location of the user (e.g., Secaucus, N.J.) to a databaselisting concert stadiums to determine a proximity of a user to a nearestconcert stadium. For example, the media guidance application mayidentify (e.g., by querying a remote database) a zip code correspondingto the location of the user (e.g., 07094). The media guidanceapplication may search, by zip code, in a look-up table comprising zipcode-distance pairs to a nearest concert stadium. In this example, themedia guidance application may determine that the user is approximatelytwo miles from the closest concert stadium. Based on the distancedetermination, the media guidance application may identify a functionmapping distance to a number of points for a score. For example, themedia guidance application may create a mapping function wherein anumber of points are subtracted from 100 (e.g., a maximum number ofpoints) at an increasing rate per mile of distance from a closeststadium. For example, the media guidance application may subtract onepoint for the first mile of distance from the stadium and two points forthe next mile of distance from the stadium. In some embodiments, themedia guidance application may query the content provider for themapping function or may retrieve a stored mapping function from memory.

In some embodiments, the media guidance application may intelligentlyderive a mapping function based on multiple profile characteristics. Forexample, the media guidance application may determine that a user lives20 miles from a closest concert stadium; however, the user does not havea car. The media guidance application may factor a multiplier into themapping function such that more points per mile are deducted from ascore corresponding to a user without a car than points per milededucted from a user with a car (e.g., because having a car might maketransportation to the concert stadium more feasible, resulting in agreater likelihood that the user will purchase an advertised localconcert ticket).

In some embodiments, the media guidance application may then determinean overall degree to which the first user profile characteristicscorrespond to the user profile by calculating an overall score (e.g., byadding the scores and dividing by the total possible points of thescores. In an example, the media guidance application may compute thedegree to be 0.76, (e.g., by computing a weighted sum of the score ofthe user profile characteristics).

In some embodiments, the media guidance application may compare thedegree to a threshold value to determine whether the user may be ofinterest to the content provider. For example, the media guidanceapplication may query the content provider for a minimum degree to whichthe user must match the first user profile characteristics. For example,the media guidance application may receive a minimum threshold, such asa score of 0.5, for which the score of a user must be greater to receivea subscription discount.

In some embodiments, the media guidance application may, based on thedegree to which the first user profile characteristics correspond to theuser profile, determine first subscription terms for the firstsubscription. For example, the media guidance application may integratevariable subscription discounts into subscription terms for a user basedon a degree calculated for the user by the media guidance application.For example, the media guidance application may calculate the degree as0.76 for a first user. The media guidance application may access apromotion look-up table comprising a plurality of degree-promotion pairsto identify a promotion corresponding to a degree of 0.76. For example,the media guidance application may determine that the first user,matching with a degree of 0.76, may be eligible for a one-month freepromotion. In another example, the media guidance application mayidentify a two-month free promotion for a second user matching with adegree of 0.95, by, for example, looking up the degree of 0.95 in thepromotion look-up table. In another example, the media guidanceapplication may determine a discrete function, such as a step function,or a continuous function (e.g., linear mapping) to map a degree to apromotion (e.g., a number of free months).

In some embodiments, the media guidance application may determinesubscription terms based on the degrees or scores of multiple profilecharacteristics. For example, the media guidance application maydetermine that a user likes to go to local concerts (e.g., because themedia guidance application identifies the user as matching a targetdemographic, retrieves a user's purchase history comprising localconcert tickets or detecting that the user is part of a “I<3 Going 2Local Concerts” group on Facebook. The media guidance application maydetect that the user's geographic location degree is high (e.g., theuser's geographic location is close to a concert stadium). The mediaguidance application may determine subscription terms comprising freeconcert tickets at a concert stadium closest to the user in a 12-monthsubscription term. In another example, the media guidance applicationmay determine that a user is geographically far from a concert stadiumand does not have an income reflective of users who purchase concerttickets; however, said user always watches advertisements related tolocal concerts (e.g., based on a viewing history identifying frequentviewing of advertisements directed to local concerts). In this example,the media guidance application may determine subscription terms tocomprise a price discount (e.g., instead of concert tickets) and a12-month term. Although the media guidance application may determinethat the user does not match all user profile characteristics ofinterest to the content provider, the media guidance application maystill present the user with a promotion.

In some embodiments, the media guidance application may query thecontent provider for the subscription terms. For example, the mediaguidance application may transmit a query to the content providercomprising information about how closely a user matches user profilecharacteristics of interest to the content provider (e.g., the degree).The media guidance application may receive in response to the querysubscription terms corresponding to the user.

In some embodiments, the media guidance application may transmit a firstsubscription request featuring the first subscription terms to the firstcontent provider. For example, the media guidance application maytransmit, over a network connection of the media guidance application, apacket comprising data of the subscription terms and data related to thedegree to which the user profile matches profile characteristics ofinterest to the first content provider, to a remote server at thelocation of the first content provider. As an example, the mediaguidance application may generate and transmit the packet usingcommunications circuitry accessible to the media guidance application.

In some embodiments, the media guidance application waits for aconfirmation of the first subscription terms from the content provider.For example, the media guidance application may query the contentprovider with the subscription terms and may wait for the contentprovider to return a response approving the subscription terms. When themedia guidance application receives approval of the subscription terms(e.g., by receiving a packet from the content provider over a networkconnection) the media guidance application may propose the subscriptionterms to a user, by, for example, generating for display thesubscription terms to the user on a display screen accessible to themedia guidance application or by sending a user an email or text messagewith the subscription terms.

In another example, the media guidance application may receivepre-approved subscription terms from a content provider. For example,the media guidance application may receive a promotion from a contentprovider, such as a promotion to give a 5% subscription discount to allusers matching a degree greater than 0.95.

In some embodiments, the media guidance application may receiveconditionally approved subscription terms from a content provider. Forexample, the media guidance application may receive subscription terms(e.g., from the content provider), authorizing a 10% discount if themedia guidance application can subscribe 5,000 users to the contentprovider.

In some embodiments, the media guidance application may request adiscount from a content provider after a threshold number of usersestablish subscriptions with the content provider. For example, themedia guidance application may determine that 10,000 subscriberssubscribed to HBO within the past month. The media guidance applicationmay request from HBO a discount for all the users subscribed in the pastmonth. In response to receiving an approval from HBO for the 10%discount, the media guidance application may automatically apply thediscount to future subscription payments for the 10,000 users. In someembodiments, the media guidance application may consume the 10% discountas profit. For example, the media guidance application may not notifythe users of the discount and may instead hold the cost savings asprofit.

In some embodiments, the media guidance application may generate fordisplay on a display screen connected to the media guidance applicationthe subscription terms along with a prompt allowing a user to subscribeto the subscription. In some embodiments, the media guidance applicationprovides a link for the user to continue to an application or a webpagehosted by the content provider to sign up for the subscription under thesubscription terms.

In some embodiments, the media guidance application may detect that auser will cancel a subscription to a content provider by detecting thata subset of media assets will no longer be available from the contentprovider at a future date. For example, the media guidance applicationmay detect that a user only watches the television series “Game ofThrones” corresponding to content provider HBO. The media guidanceapplication may detect that the television show “Game of Thrones” willno longer be available at a future date and that the show will returnabout a year after the future date using the methods described above.Upon the detection, the media guidance application may calculate aprobability that the user will request to cancel the subscription on thefuture date by, for example, examining user prior behavior in asubscription history (e.g., identifying any instances where a usercanceled a subscription right after a season of shows consumed by theuser ended) or, for example, determining other media assets available tothe user after the future date (e.g., if other media assets of interestto the user are available after the future date, the media guidanceapplication may estimate a lower probability that the user will cancelservice at the future date). The media guidance application may comparethe probability to a threshold (e.g., a threshold stored in memory) todetermine whether the user is expected to cancel the subscription (e.g.,the probability is above the threshold).

In some embodiments, the media guidance application may determinesubscription terms in response to detecting that the user is going tocancel a second content subscription to a second content provider. Forexample, the media guidance application may determine that, at fullsubscription price, a user may only keep an HBO subscription during theseason of “Game of Thrones.” However, the media guidance application maydetermine, (e.g., via information received from HBO) that customerretention is more important to the content provider than totalsubscription price. The media guidance application may, for example,generate subscription terms, wherein the terms cover 12 months (e.g., tocover the period between the end of a first season of “Game of Thrones”and the beginning of a second season of “Game of Thrones”) at a costsubstantially equal to, or marginally more than the cost to have aregular subscription during a season of “Game of Thrones.”

In some embodiments, the media guidance application may receiveinformation from the user to populate the user profile. For example, themedia guidance application may receive information, such as a totalcost. The media guidance application may retrieve the total cost fromthe user profile and may only recommend subscriptions less than thetotal cost.

In some embodiments, the information received by the user is compared toa first user profile characteristic to determine a degree to which thefirst user profile characteristic corresponds to the user profile. Forexample, the user may input information, such as a maximum totalsubscription cost the user wants to spend each month. The media guidanceapplication may store the information in a user profile associated withthe user. The media guidance application may determine a degree byequating whether the maximum total subscription cost is greater than acost associated with the content provider, and assigning a score of 0 ifthe cost associated with the content provider is greater, or a score of1 if the cost associated with the content provider is less.

In some embodiments, the media guidance application may generate fordisplay to the user a first promotion for a first subscription based onthe information input by a user to the user profile. For example, themedia guidance application may determine a subscription as describedabove based on the profile information input by a user. The mediaguidance application may generate for display a prompt containinginformation about the first subscription and a link to sign up for thesubscription.

In some embodiments, the media guidance application may receive anupdate to the profile information provided by the user. For example, themedia guidance application may detect user input at a text box of themedia guidance application comprising an updated yearly incomecorresponding to the user.

In some embodiments, the media guidance application may generate fordisplay to the user a second promotion for the first subscription basedon the updated information. For example, the media guidance applicationmay determine a second subscription and subscription terms for a contentprovider in accordance with the method outlined above. The mediaguidance application may generate for display the updated promotion in aprompt to the user comprising the subscription terms and a link tosubscribe to the content provider.

In some embodiments, the media guidance application may identify asecond subset of the plurality of media assets available from a secondcontent provider of the plurality of content providers, wherein the userrequires a second subscription to the second content provider to accessthe first subset. For example, the media guidance application mayidentify a second subset of media assets (e.g., all media assets from asecond content provider) of the plurality of media assets available fromall content providers. In some embodiments, the media assets of thefirst subset may match some or all of the media assets of the secondsubset. For example, both subsets may comprise all “Harry Potter”movies.

In some embodiments, the media guidance application may retrieve seconduser profile characteristics of interest to the second content provider.As described above, the media guidance application may request a set ofuser profile characteristics from the second content provider or mayinfer the characteristics based on aspects of the second contentprovider.

In some embodiments, the media guidance application may compare thesecond user profile characteristics to the user profile. As describedabove, the media guidance application may compare user profile data,such as a user's income, to user profile characteristics of interest tothe second content provider, such as a target income of interest to thecontent provider.

In some embodiments, the media guidance application may, based oncomparing the second user profile characteristics to the user profile,determine a degree to which the second user profile characteristicscorrespond to the user profile. For example, as described above, themedia guidance application may derive a score or degree to which datafrom the user profile matches a profile characteristic. For example, adistance formula may be used to map a number of points to a particularage, income, media consumption rate, etc.

In some embodiments, the media guidance application may determine secondsubscription terms for the second subscription based on the degree towhich the second user profile characteristics correspond to the userprofile. For example, the media guidance application may determine thatuser profile characteristics match a user profile by a degree of 0.9 outof 1 using the methods described above, Based on the computed degree,the media guidance application may identify subscription terms by, forexample, offering a greater discount to users who have a degree closerto 1 (e.g., the highest degree).

In some embodiments, the media guidance application may transmit asecond subscription request featuring the second subscription terms tothe second content provider. For example, the media guidance applicationmay transmit the second subscription terms to the second contentprovider to, for example, request approval of the terms. For example,the media guidance application may generate a packet containinginformation about the second subscription terms for transmission overcommunications circuitry accessible to the media guidance application.

In some embodiments, the media guidance application may retrieve asubscription term criterion from the first content provider, wherein thesubscription term criterion indicates subscription terms acceptable tothe first content provider based on the user profile. For example, themedia guidance application may receive a criterion indicating anapproval of the subscription terms sent by the media guidanceapplication.

In some embodiments, the media guidance application may enable twocontent providers to bid for a user. For example, the media guidanceapplication may notify the first content provider of the secondsubscription request. For example, the media guidance application maytransmit a packet over a network connection of the media guidanceapplication (e.g., using communications circuitry of the media guidanceapplication) informing the first content provider that the secondsubscription request was transmitted. In another example, thenotification may comprise data indicting details about the secondsubscription terms, such as an associated cost and subscription length.In another example, the notification may only be sent to the first mediacontent provider if the first subscription terms have a cost greaterthan the second subscription terms.

In some embodiments, the first content provider is queried by the mediaguidance application for an updated to the subscription term criterion.For example, the media guidance application may receive a request toupdate the subscription terms from the first content provider based onthe notification. For example, the media guidance application mayreceive a lower subscription cost from the first content provider inresponse to the notification that the subscription cost corresponding tothe second content provider is lower than the subscription costcorresponding to the first content provider.

In some embodiments, the update subscription term criterion is based onthe user subscribing to both the first content provider and the secondcontent provider. For example, in response to receiving thenotification, the first content provider may update the subscriptionterms to include a joint subscription with the second content provider.For example, the media guidance application may generate onesubscription, wherein the subscription grants a user access to all mediaassets of the first and the second content provider.

In some embodiments, the media guidance application may manage useraccess to content providers through user interaction with an element ofthe illustrative display screens depicted in FIGS. 1-2. FIGS. 1-2 showillustrative display screens that may be used to provide media guidancedata. The display screens shown in FIGS. 1-2 may be implemented on anysuitable user equipment device or platform. While the displays of FIGS.1-2 are illustrated as full screen displays, they may also be fully orpartially overlaid over content being displayed. A user may indicate adesire to access content information by selecting a selectable optionprovided in a display screen (e.g., a menu option, a listings option, anicon, a hyperlink, etc.) or pressing a dedicated button (e.g., a GUIDEbutton) on a remote control or other user input interface or device. Inresponse to the user's indication, the media guidance application mayprovide a display screen with media guidance data organized in one ofseveral ways, such as by time and channel in a grid, by time, bychannel, by source, by content type, by category (e.g., movies, sports,news, children, or other categories of programming), or otherpredefined, user-defined, or other organization criteria.

FIG. 1 shows illustrative grid of a program listings display 100arranged by time and channel that also enables access to different typesof content in a single display. Display 100 may include grid 102 with:(1) a column of channel/content type identifiers 104, where eachchannel/content type identifier (which is a cell in the column)identifies a different channel or content type available; and (2) a rowof time identifiers 106, where each time identifier (which is a cell inthe row) identifies a time block of programming. Grid 102 also includescells of program listings, such as program listing 108, where eachlisting provides the title of the program provided on the listing'sassociated channel and time. With a user input device, a user can selectprogram listings by moving highlight region 110. Information relating tothe program listing selected by highlight region 110 may be provided inprogram information region 112. Region 112 may include, for example, theprogram title, the program description, the time the program is provided(if applicable), the channel the program is on (if applicable), theprogram's rating, and other desired information.

In addition to providing access to linear programming (e.g., contentthat is scheduled to be transmitted to a plurality of user equipmentdevices at a predetermined time and is provided according to aschedule), the media guidance application also provides access tonon-linear programming (e.g., content accessible to a user equipmentdevice at any time and is not provided according to a schedule).Non-linear programming may include content from different contentsources including on-demand content (e.g., VOD), Internet content (e.g.,streaming media, downloadable media, etc.), locally stored content(e.g., content stored on any user equipment device described above orother storage device), or other time-independent content. On-demandcontent may include movies or any other content provided by a particularcontent provider (e.g., HBO On Demand providing “The Sopranos” and “CurbYour Enthusiasm”). HBO ON DEMAND is a service mark owned by Time WarnerCompany L.P. et al. and THE SOPRANOS and CURB YOUR ENTHUSIASM aretrademarks owned by the Home Box Office, Inc. Internet content mayinclude web events, such as a chat session or Webcast, or contentavailable on-demand as streaming content or downloadable content throughan Internet web site or other Internet access (e.g. FTP).

Grid 102 may provide media guidance data for non-linear programmingincluding on-demand listing 114, recorded content listing 116, andInternet content listing 118. A display combining media guidance datafor content from different types of content sources is sometimesreferred to as a “mixed-media” display. Various permutations of thetypes of media guidance data that may be displayed that are differentthan display 100 may be based on user selection or guidance applicationdefinition (e.g., a display of only recorded and broadcast listings,only on-demand and broadcast listings, etc.). As illustrated, listings114, 116, and 118 are shown as spanning the entire time block displayedin grid 102 to indicate that selection of these listings may provideaccess to a display dedicated to on-demand listings, recorded listings,or Internet listings, respectively. In some embodiments, listings forthese content types may be included directly in grid 102. Additionalmedia guidance data may be displayed in response to the user selectingone of the navigational icons 120. (Pressing an arrow key on a userinput device may affect the display in a similar manner as selectingnavigational icons 120.)

Display 100 may also include video region 122, advertisement 124, andoptions region 126. Video region 122 may allow the user to view and/orpreview programs that are currently available, will be available, orwere available to the user. The content of video region 122 maycorrespond to, or be independent from, one of the listings displayed ingrid 102. Grid displays including a video region are sometimes referredto as picture-in-guide (PIG) displays. PIG displays and theirfunctionalities are described in greater detail in Satterfield et al.U.S. Pat. No. 6,564,378, issued May 13, 2003 and Yuen et al. U.S. Pat.No. 6,239,794, issued May 29, 2001, which are hereby incorporated byreference herein in their entireties. PIG displays may be included inother media guidance application display screens of the embodimentsdescribed herein.

Advertisement 124 may provide an advertisement for content that,depending on a viewer's access rights (e.g., for subscriptionprogramming), is currently available for viewing, will be available forviewing in the future, or may never become available for viewing, andmay correspond to or be unrelated to one or more of the content listingsin grid 102. Advertisement 124 may also be for products or servicesrelated or unrelated to the content displayed in grid 102. Advertisement124 may be selectable and provide further information about content,provide information about a product or a service, enable purchasing ofcontent, a product, or a service, provide content relating to theadvertisement, etc. Advertisement 124 may be targeted based on a user'sprofile/preferences, monitored user activity, the type of displayprovided, or on other suitable targeted advertisement bases.

While advertisement 124 is shown as rectangular or banner shaped,advertisements may be provided in any suitable size, shape, and locationin a guidance application display. For example, advertisement 124 may beprovided as a rectangular shape that is horizontally adjacent to grid102. This is sometimes referred to as a panel advertisement. Inaddition, advertisements may be overlaid over content or a guidanceapplication display or embedded within a display. Advertisements mayalso include text, images, rotating images, video clips, or other typesof content described above. Advertisements may be stored in a userequipment device having a guidance application, in a database connectedto the user equipment, in a remote location (including streaming mediaservers), or on other storage means, or a combination of theselocations. Providing advertisements in a media guidance application isdiscussed in greater detail in, for example, Knudson et al., U.S. PatentApplication Publication No. 2003/0110499, filed Jan. 17, 2003; Ward, IIIet al. U.S. Pat. No. 6,756,997, issued Jun. 29, 2004; and Schein et al.U.S. Pat. No. 6,388,714, issued May 14, 2002, which are herebyincorporated by reference herein in their entireties. It will beappreciated that advertisements may be included in other media guidanceapplication display screens of the embodiments described herein.

Options region 126 may allow the user to access different types ofcontent, media guidance application displays, and/or media guidanceapplication features. Options region 126 may be part of display 100 (andother display screens described herein), or may be invoked by a user byselecting an on-screen option or pressing a dedicated or assignablebutton on a user input device. The selectable options within optionsregion 126 may concern features related to program listings in grid 102or may include options available from a main menu display. Featuresrelated to program listings may include searching for other air times orways of receiving a program, recording a program, enabling seriesrecording of a program, setting program and/or channel as a favorite,purchasing a program, or other features. Options available from a mainmenu display may include search options, VOD options, parental controloptions, Internet options, cloud-based options, device synchronizationoptions, second screen device options, options to access various typesof media guidance data displays, options to subscribe to a premiumservice, options to edit a user's profile, options to access a browseoverlay, or other options.

The media guidance application may be personalized based on a user'spreferences. A personalized media guidance application allows a user tocustomize displays and features to create a personalized “experience”with the media guidance application. This personalized experience may becreated by allowing a user to input these customizations and/or by themedia guidance application monitoring user activity to determine varioususer preferences. Users may access their personalized guidanceapplication by logging in or otherwise identifying themselves to theguidance application. Customization of the media guidance applicationmay be made in accordance with a user profile. The customizations mayinclude varying presentation schemes (e.g., color scheme of displays,font size of text, etc.), aspects of content listings displayed (e.g.,only HDTV or only 3D programming, user-specified broadcast channelsbased on favorite channel selections, re-ordering the display ofchannels, recommended content, etc.), desired recording features (e.g.,recording or series recordings for particular users, recording quality,etc.), parental control settings, customized presentation of Internetcontent (e.g., presentation of social media content, e-mail,electronically delivered articles, etc.) and other desiredcustomizations.

The media guidance application may allow a user to provide user profileinformation or may automatically compile user profile information. Themedia guidance application may, for example, monitor the content theuser accesses and/or other interactions the user may have with theguidance application. Additionally, the media guidance application mayobtain all or part of other user profiles that are related to aparticular user (e.g., from other web sites on the Internet the useraccesses, such as www.allrovi.com, from other media guidanceapplications the user accesses, from other interactive applications theuser accesses, from another user equipment device of the user, etc.),and/or obtain information about the user from other sources that themedia guidance application may access. As a result, a user can beprovided with a unified guidance application experience across theuser's different user equipment devices. This type of user experience isdescribed in greater detail below in connection with FIG. 4. Additionalpersonalized media guidance application features are described ingreater detail in Ellis et al., U.S. Patent Application Publication No.2005/0251827, filed Jul. 11, 2005, Boyer et al., U.S. Pat. No.7,165,098, issued Jan. 16, 2007, and Ellis et al., U.S. PatentApplication Publication No. 2002/0174430, filed Feb. 21, 2002, which arehereby incorporated by reference herein in their entireties.

Another display arrangement for providing media guidance is shown inFIG. 2. Video mosaic display 200 includes selectable options 202 forcontent information organized based on content type, genre, and/or otherorganization criteria. In display 200, recommendations option 204 isselected, thus providing recommendations 206, 208, 210, and 212 asrecommendations for content providers to which a user should requestaccess. In display 200 the recommendations may provide graphical imagesincluding cover art, still images from the content, video clip previews,live video from the content, or other types of content that indicate toa user the content being described by the media guidance data in therecommendation. Each of the graphical content provider recommendationsmay also be accompanied by text to provide further information about thecontent associated with the content provider. For example,recommendation 208 may include more than one portion, including mediaasset portion 214 and content provider portion 216. Media asset portion214 and/or content provider portion 216 may be selectable to viewcontent in full-screen, to view information related to the media assetdisplayed in media asset portion 214, to view information about thecontent provider displayed in content provider portion 216 or to requestaccess to a content provider recommended by the media guidanceapplication.

The recommendations in display 200 are of different sizes (i.e.,recommendation 206 is larger than recommendations 208, 210, and 212),but if desired, all the recommendations may be the same size.Recommendations may be of different sizes or graphically accentuated toindicate degrees of interest to the user or to emphasize certaincontent, as desired by the content provider or based on userpreferences. Various systems and methods for graphically accentuatingcontent listings are discussed in, for example, Yates, U.S. PatentApplication Publication No. 2010/0153885, filed Nov. 12, 2009, which ishereby incorporated by reference herein in its entirety.

Users may access content and the media guidance application (and itsdisplay screens described above and below) from one or more of theiruser equipment devices. FIG. 3 shows a generalized embodiment ofillustrative user equipment device 300. More specific implementations ofuser equipment devices are discussed below in connection with FIG. 4.User equipment device 300 may receive content and data via input/output(hereinafter “I/O”) path 302. I/O path 302 may provide content (e.g.,broadcast programming, on-demand programming, Internet content, contentavailable over a local area network (LAN) or wide area network (WAN),and/or other content) and data to control circuitry 304, which includesprocessing circuitry 306 and storage 308. Control circuitry 304 may beused to send and receive commands, requests, and other suitable datausing I/O path 302. I/O path 302 may connect control circuitry 304 (andspecifically processing circuitry 306) to one or more communicationspaths (described below). I/O functions may be provided by one or more ofthese communications paths, but are shown as a single path in FIG. 3 toavoid overcomplicating the drawing.

Control circuitry 304 may be based on any suitable processing circuitrysuch as processing circuitry 306. As referred to herein, processingcircuitry should be understood to mean circuitry based on one or moremicroprocessors, microcontrollers, digital signal processors,programmable logic devices, field-programmable gate arrays (FPGAs),application-specific integrated circuits (ASICs), etc., and may includea multi-core processor (e.g., dual-core, quad-core, hexa-core, or anysuitable number of cores) or supercomputer. In some embodiments,processing circuitry may be distributed across multiple separateprocessors or processing units, for example, multiple of the same typeof processing units (e.g., two Intel Core i7 processors) or multipledifferent processors (e.g., an Intel Core i5 processor and an Intel Corei7 processor). In some embodiments, control circuitry 304 executesinstructions for a media guidance application stored in memory (i.e.,storage 308). Specifically, control circuitry 304 may be instructed bythe media guidance application to perform the functions discussed aboveand below. For example, the media guidance application may provideinstructions to control circuitry 304 to generate the media guidancedisplays. In some implementations, any action performed by controlcircuitry 304 may be based on instructions received from the mediaguidance application.

In client-server based embodiments, control circuitry 304 may includecommunications circuitry suitable for communicating with a guidanceapplication server or other networks or servers. The instructions forcarrying out the above mentioned functionality may be stored on theguidance application server. Communications circuitry may include acable modem, an integrated services digital network (ISDN) modem, adigital subscriber line (DSL) modem, a telephone modem, Ethernet card,or a wireless modem for communications with other equipment, or anyother suitable communications circuitry. Such communications may involvethe Internet or any other suitable communications networks or paths(which is described in more detail in connection with FIG. 4). Inaddition, communications circuitry may include circuitry that enablespeer-to-peer communication of user equipment devices, or communicationof user equipment devices in locations remote from each other (describedin more detail below).

Memory may be an electronic storage device provided as storage 308 thatis part of control circuitry 304. As referred to herein, the phrase“electronic storage device” or “storage device” should be understood tomean any device for storing electronic data, computer software, orfirmware, such as random-access memory, read-only memory, hard drives,optical drives, digital video disc (DVD) recorders, compact disc (CD)recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders,digital video recorders (DVR, sometimes called a personal videorecorder, or PVR), solid state devices, quantum storage devices, gamingconsoles, gaming media, or any other suitable fixed or removable storagedevices, and/or any combination of the same. Storage 308 may be used tostore various types of content described herein as well as mediaguidance data described above. Nonvolatile memory may also be used(e.g., to launch a boot-up routine and other instructions). Cloud-basedstorage, described in relation to FIG. 4, may be used to supplementstorage 308 or instead of storage 308.

Control circuitry 304 may include video generating circuitry and tuningcircuitry, such as one or more analog tuners, one or more MPEG-2decoders or other digital decoding circuitry, high-definition tuners, orany other suitable tuning or video circuits or combinations of suchcircuits. Encoding circuitry (e.g., for converting over-the-air, analog,or digital signals to MPEG signals for storage) may also be provided.Control circuitry 304 may also include scaler circuitry for upconvertingand downconverting content into the preferred output format of the userequipment 300. Control circuitry 304 may also include digital-to-analogconverter circuitry and analog-to-digital converter circuitry forconverting between digital and analog signals. The tuning and encodingcircuitry may be used by the user equipment device to receive and todisplay, to play, or to record content. The tuning and encodingcircuitry may also be used to receive guidance data. The circuitrydescribed herein, including for example, the tuning, video generating,encoding, decoding, encrypting, decrypting, scaler, and analog/digitalcircuitry, may be implemented using software running on one or moregeneral purpose or specialized processors. Multiple tuners may beprovided to handle simultaneous tuning functions (e.g., watch and recordfunctions, picture-in-picture (PIP) functions, multiple-tuner recording,etc.). If storage 308 is provided as a separate device from userequipment 300, the tuning and encoding circuitry (including multipletuners) may be associated with storage 308.

A user may send instructions to control circuitry 304 using user inputinterface 310. User input interface 310 may be any suitable userinterface, such as a remote control, mouse, trackball, keypad, keyboard,touch screen, touchpad, stylus input, joystick, voice recognitioninterface, or other user input interfaces. Display 312 may be providedas a stand-alone device or integrated with other elements of userequipment device 300. For example, display 312 may be a touchscreen ortouch-sensitive display. In such circumstances, user input interface 310may be integrated with or combined with display 312. Display 312 may beone or more of a monitor, a television, a liquid crystal display (LCD)for a mobile device, amorphous silicon display, low temperature polysilicon display, electronic ink display, electrophoretic display, activematrix display, electro-wetting display, electrofluidic display, cathoderay tube display, light-emitting diode display, electroluminescentdisplay, plasma display panel, high-performance addressing display,thin-film transistor display, organic light-emitting diode display,surface-conduction electron-emitter display (SED), laser television,carbon nanotubes, quantum dot display, interferometric modulatordisplay, or any other suitable equipment for displaying visual images.In some embodiments, display 312 may be HDTV-capable. In someembodiments, display 312 may be a 3D display, and the interactive mediaguidance application and any suitable content may be displayed in 3D. Avideo card or graphics card may generate the output to the display 312.The video card may offer various functions such as accelerated renderingof 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or theability to connect multiple monitors. The video card may be anyprocessing circuitry described above in relation to control circuitry304. The video card may be integrated with the control circuitry 304.Speakers 314 may be provided as integrated with other elements of userequipment device 300 or may be stand-alone units. The audio component ofvideos and other content displayed on display 312 may be played throughspeakers 314. In some embodiments, the audio may be distributed to areceiver (not shown), which processes and outputs the audio via speakers314.

The guidance application may be implemented using any suitablearchitecture. For example, it may be a stand-alone applicationwholly-implemented on user equipment device 300. In such an approach,instructions of the application are stored locally (e.g., in storage308), and data for use by the application is downloaded on a periodicbasis (e.g., from an out-of-band feed, from an Internet resource, orusing another suitable approach). Control circuitry 304 may retrieveinstructions of the application from storage 308 and process theinstructions to generate any of the displays discussed herein. Based onthe processed instructions, control circuitry 304 may determine whataction to perform when input is received from input interface 310. Forexample, movement of a cursor on a display up/down may be indicated bythe processed instructions when input interface 310 indicates that anup/down button was selected.

In some embodiments, the media guidance application is a client-serverbased application. Data for use by a thick or thin client implemented onuser equipment device 300 is retrieved on-demand by issuing requests toa server remote to the user equipment device 300. In one example of aclient-server based guidance application, control circuitry 304 runs aweb browser that interprets web pages provided by a remote server. Forexample, the remote server may store the instructions for theapplication in a storage device. The remote server may process thestored instructions using circuitry (e.g., control circuitry 304) andgenerate the displays discussed above and below. The client device mayreceive the displays generated by the remote server and may display thecontent of the displays locally on equipment device 300. This way, theprocessing of the instructions is performed remotely by the server whilethe resulting displays are provided locally on equipment device 300.Equipment device 300 may receive inputs from the user via inputinterface 310 and transmit those inputs to the remote server forprocessing and generating the corresponding displays. For example,equipment device 300 may transmit a communication to the remote serverindicating that an up/down button was selected via input interface 310.The remote server may process instructions in accordance with that inputand generate a display of the application corresponding to the input(e.g., a display that moves a cursor up/down). The generated display isthen transmitted to equipment device 300 for presentation to the user.

In some embodiments, the media guidance application is downloaded andinterpreted or otherwise run by an interpreter or virtual machine (runby control circuitry 304). In some embodiments, the guidance applicationmay be encoded in the ETV Binary Interchange Format (EBIF), received bycontrol circuitry 304 as part of a suitable feed, and interpreted by auser agent running on control circuitry 304. For example, the guidanceapplication may be an EBIF application. In some embodiments, theguidance application may be defined by a series of JAVA-based files thatare received and run by a local virtual machine or other suitablemiddleware executed by control circuitry 304. In some embodiments, themedia guidance application may be encoded using a markup language suchas HTML5 or XHTML5 and may be interpreted by a browser running oncontrol circuitry 304. In some embodiments, the media guidanceapplication may be encoded in Flash or JavaScript code embedded into aHTML or XHTML code or standalone. Control circuitry 304 may run avirtual machine or an interpreter to run the Flash or JavaScript code.In some of such embodiments (e.g., those employing MPEG-2 or otherdigital media encoding schemes), the guidance application may be, forexample, encoded and transmitted in an MPEG-2 object carousel with theMPEG audio and video packets of a program.

User equipment device 300 of FIG. 3 can be implemented in system 400 ofFIG. 4 as user television equipment 402, user computer equipment 404,wireless user communications device 406, or any other type of userequipment suitable for accessing content, such as a non-portable gamingmachine. For simplicity, these devices may be referred to hereincollectively as user equipment or user equipment devices, and may besubstantially similar to user equipment devices described above. Userequipment devices, on which a media guidance application may beimplemented, may function as a standalone device or may be part of anetwork of devices. Various network configurations of devices may beimplemented and are discussed in more detail below.

A user equipment device utilizing at least some of the system featuresdescribed above in connection with FIG. 3 may not be classified solelyas user television equipment 402, user computer equipment 404, or awireless user communications device 406. For example, user televisionequipment 402 may, like some user computer equipment 404, beInternet-enabled allowing for access to Internet content, while usercomputer equipment 404 may, like some television equipment 402, includea tuner allowing for access to television programming. The mediaguidance application may have the same layout on various different typesof user equipment or may be tailored to the display capabilities of theuser equipment. For example, on user computer equipment 404, theguidance application may be provided as a web site accessed by a webbrowser. In another example, the guidance application may be scaled downfor wireless user communications devices 406.

In system 400, there is typically more than one of each type of userequipment device but only one of each is shown in FIG. 4 to avoidovercomplicating the drawing. In addition, each user may utilize morethan one type of user equipment device and also more than one of eachtype of user equipment device.

In some embodiments, a user equipment device (e.g., user televisionequipment 402, user computer equipment 404, wireless user communicationsdevice 406) may be referred to as a “second screen device.” For example,a second screen device may supplement content presented on a first userequipment device. The content presented on the second screen device maybe any suitable content that supplements the content presented on thefirst device. In some embodiments, the second screen device provides aninterface for adjusting settings and display preferences of the firstdevice. In some embodiments, the second screen device is configured forinteracting with other second screen devices or for interacting with asocial network. The second screen device can be located in the same roomas the first device, a different room from the first device but in thesame house or building, or in a different building from the firstdevice.

The user may also set various settings to maintain consistent mediaguidance application settings across in-home devices and remote devices.Settings include those described herein, as well as channel and programfavorites, programming preferences that the guidance applicationutilizes to make programming recommendations, display preferences, andother desirable guidance settings. For example, if a user sets a channelas a favorite on, for example, the web site www.allrovi.com on theirpersonal computer at their office, the same channel would appear as afavorite on the user's in-home devices (e.g., user television equipmentand user computer equipment) as well as the user's mobile devices, ifdesired. Therefore, changes made on one user equipment device can changethe guidance experience on another user equipment device, regardless ofwhether they are the same or a different type of user equipment device.In addition, the changes made may be based on settings input by a user,as well as user activity monitored by the guidance application.

The user equipment devices may be coupled to communications network 414.Namely, user television equipment 402, user computer equipment 404, andwireless user communications device 406 are coupled to communicationsnetwork 414 via communications paths 408, 410, and 412, respectively.Communications network 414 may be one or more networks including theInternet, a mobile phone network, mobile voice or data network (e.g., a4G or LTE network), cable network, public switched telephone network, orother types of communications network or combinations of communicationsnetworks. Paths 408, 410, and 412 may separately or together include oneor more communications paths, such as, a satellite path, a fiber-opticpath, a cable path, a path that supports Internet communications (e.g.,IPTV), free-space connections (e.g., for broadcast or other wirelesssignals), or any other suitable wired or wireless communications path orcombination of such paths. Path 412 is drawn with dotted lines toindicate that in the exemplary embodiment shown in FIG. 4 it is awireless path and paths 408 and 410 are drawn as solid lines to indicatethey are wired paths (although these paths may be wireless paths, ifdesired). Communications with the user equipment devices may be providedby one or more of these communications paths, but are shown as a singlepath in FIG. 4 to avoid overcomplicating the drawing.

Although communications paths are not drawn between user equipmentdevices, these devices may communicate directly with each other viacommunication paths, such as those described above in connection withpaths 408, 410, and 412, as well as other short-range point-to-pointcommunication paths, such as USB cables, IEEE 1394 cables, wirelesspaths (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or othershort-range communication via wired or wireless paths. BLUETOOTH is acertification mark owned by Bluetooth SIG, INC. The user equipmentdevices may also communicate with each other directly through anindirect path via communications network 414.

System 400 includes content source 416 and media guidance data source418 coupled to communications network 414 via communication paths 420and 422, respectively. Paths 420 and 422 may include any of thecommunication paths described above in connection with paths 408, 410,and 412.

Communications with the content source 416 and media guidance datasource 418 may be exchanged over one or more communications paths, butare shown as a single path in FIG. 4 to avoid overcomplicating thedrawing. In addition, there may be more than one of each of contentsource 416 and media guidance data source 418, but only one of each isshown in FIG. 4 to avoid overcomplicating the drawing. (The differenttypes of each of these sources are discussed below.) If desired, contentsource 416 and media guidance data source 418 may be integrated as onesource device. Although communications between sources 416 and 418 withuser equipment devices 402, 404, and 406 are shown as throughcommunications network 414, in some embodiments, sources 416 and 418 maycommunicate directly with user equipment devices 402, 404, and 406 viacommunication paths (not shown) such as those described above inconnection with paths 408, 410, and 412.

Content source 416 may include one or more types of content distributionequipment including a television distribution facility, cable systemheadend, satellite distribution facility, programming sources (e.g.,television broadcasters, such as NBC, ABC, HBO, etc.), intermediatedistribution facilities and/or servers, Internet providers, on-demandmedia servers, and other content providers. NBC is a trademark owned bythe National Broadcasting Company, Inc., ABC is a trademark owned by theAmerican Broadcasting Company, Inc., and HBO is a trademark owned by theHome Box Office, Inc. Content source 416 may be the originator ofcontent (e.g., a television broadcaster, a Webcast provider, etc.) ormay not be the originator of content (e.g., an on-demand contentprovider, an Internet provider of content of broadcast programs fordownloading, etc.). Content source 416 may include cable sources,satellite providers, on-demand providers, Internet providers,over-the-top content providers, or other providers of content. Contentsource 416 may also include a remote media server used to storedifferent types of content (including video content selected by a user),in a location remote from any of the user equipment devices. Systems andmethods for remote storage of content, and providing remotely storedcontent to user equipment are discussed in greater detail in connectionwith Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, whichis hereby incorporated by reference herein in its entirety.

Media guidance data source 418 may provide media guidance data, such asthe media guidance data described above. Media guidance data may beprovided to the user equipment devices using any suitable approach. Insome embodiments, the guidance application may be a stand-aloneinteractive television program guide that receives program guide datavia a data feed (e.g., a continuous feed or trickle feed). Programschedule data and other guidance data may be provided to the userequipment on a television channel sideband, using an in-band digitalsignal, using an out-of-band digital signal, or by any other suitabledata transmission technique. Program schedule data and other mediaguidance data may be provided to user equipment on multiple analog ordigital television channels.

In some embodiments, guidance data from media guidance data source 418may be provided to users' equipment using a client-server approach. Forexample, a user equipment device may pull media guidance data from aserver, or a server may push media guidance data to a user equipmentdevice. In some embodiments, a guidance application client residing onthe user's equipment may initiate sessions with source 418 to obtainguidance data when needed, e.g., when the guidance data is out of dateor when the user equipment device receives a request from the user toreceive data. Media guidance may be provided to the user equipment withany suitable frequency (e.g., continuously, daily, a user-specifiedperiod of time, a system-specified period of time, in response to arequest from user equipment, etc.). Media guidance data source 418 mayprovide user equipment devices 402, 404, and 406 the media guidanceapplication itself or software updates for the media guidanceapplication.

In some embodiments, the media guidance data may include viewer data.For example, the viewer data may include current and/or historical useractivity information (e.g., what content the user typically watches,what times of day the user watches content, whether the user interactswith a social network, at what times the user interacts with a socialnetwork to post information, what types of content the user typicallywatches (e.g., pay TV or free TV), mood, brain activity information,etc.). The media guidance data may also include subscription data. Forexample, the subscription data may identify to which sources or servicesa given user subscribes and/or to which sources or services the givenuser has previously subscribed but later terminated access (e.g.,whether the user subscribes to premium channels, whether the user hasadded a premium level of services, whether the user has increasedInternet speed). In some embodiments, the viewer data and/or thesubscription data may identify patterns of a given user for a period ofmore than one year. The media guidance data may include a model (e.g., asurvivor model) used for generating a score that indicates a likelihooda given user will terminate access to a service/source. For example, themedia guidance application may process the viewer data with thesubscription data using the model to generate a value or score thatindicates a likelihood of whether the given user will terminate accessto a particular service or source. In particular, a higher score mayindicate a higher level of confidence that the user will terminateaccess to a particular service or source. Based on the score, the mediaguidance application may generate promotions and advertisements thatentice the user to keep the particular service or source indicated bythe score as one to which the user will likely terminate access.

Media guidance applications may be, for example, stand-aloneapplications implemented on user equipment devices. For example, themedia guidance application may be implemented as software or a set ofexecutable instructions which may be stored in storage 308, and executedby control circuitry 304 of a user equipment device 300. In someembodiments, media guidance applications may be client-serverapplications where only a client application resides on the userequipment device, and server application resides on a remote server. Forexample, media guidance applications may be implemented partially as aclient application on control circuitry 304 of user equipment device 300and partially on a remote server as a server application (e.g., mediaguidance data source 418) running on control circuitry of the remoteserver. When executed by control circuitry of the remote server (such asmedia guidance data source 418), the media guidance application mayinstruct the control circuitry to generate the guidance applicationdisplays and transmit the generated displays to the user equipmentdevices. The server application may instruct the control circuitry ofthe media guidance data source 418 to transmit data for storage on theuser equipment. The client application may instruct control circuitry ofthe receiving user equipment to generate the guidance applicationdisplays.

Content and/or media guidance data delivered to user equipment devices402, 404, and 406 may be over-the-top (OTT) content. OTT contentdelivery allows Internet-enabled user devices, including any userequipment device described above, to receive content that is transferredover the Internet, including any content described above, in addition tocontent received over cable or satellite connections. OTT content isdelivered via an Internet connection provided by an Internet serviceprovider (ISP), but a third party distributes the content. The ISP maynot be responsible for the viewing abilities, copyrights, orredistribution of the content, and may only transfer IP packets providedby the OTT content provider. Examples of OTT content providers includeYOUTUBE, NETFLIX, and HULU, which provide audio and video via IPpackets. YouTube is a trademark owned by Google Inc., Netflix is atrademark owned by Netflix Inc., and Hulu is a trademark owned by Hulu,LLC. OTT content providers may additionally or alternatively providemedia guidance data described above. In addition to content and/or mediaguidance data, providers of OTT content can distribute media guidanceapplications (e.g., web-based applications or cloud-based applications),or the content can be displayed by media guidance applications stored onthe user equipment device.

Media guidance system 400 is intended to illustrate a number ofapproaches, or network configurations, by which user equipment devicesand sources of content and guidance data may communicate with each otherfor the purpose of accessing content and providing media guidance. Theembodiments described herein may be applied in any one or a subset ofthese approaches, or in a system employing other approaches fordelivering content and providing media guidance. The following fourapproaches provide specific illustrations of the generalized example ofFIG. 4.

In one approach, user equipment devices may communicate with each otherwithin a home network. User equipment devices can communicate with eachother directly via short-range point-to-point communication schemesdescribed above, via indirect paths through a hub or other similardevice provided on a home network, or via communications network 414.Each of the multiple individuals in a single home may operate differentuser equipment devices on the home network. As a result, it may bedesirable for various media guidance information or settings to becommunicated between the different user equipment devices. For example,it may be desirable for users to maintain consistent media guidanceapplication settings on different user equipment devices within a homenetwork, as described in greater detail in Ellis et al., U.S. PatentPublication No. 2005/0251827, filed Jul. 11, 2005. Different types ofuser equipment devices in a home network may also communicate with eachother to transmit content. For example, a user may transmit content fromuser computer equipment to a portable video player or portable musicplayer.

In a second approach, users may have multiple types of user equipment bywhich they access content and obtain media guidance. For example, someusers may have home networks that are accessed by in-home and mobiledevices. Users may control in-home devices via a media guidanceapplication implemented on a remote device. For example, users mayaccess an online media guidance application on a website via a personalcomputer at their office, or a mobile device such as a laptop, tablet,or smartphone. The user may set various settings (e.g., recordings,reminders, or other settings) on the online guidance application tocontrol the user's in-home equipment. The online guide may control theuser's equipment directly, or by communicating with a media guidanceapplication on the user's in-home equipment. Various systems and methodsfor user equipment devices communicating, where the user equipmentdevices are in locations remote from each other, is discussed in, forexample, Ellis et al., U.S. Pat. No. 8,046,801, issued Oct. 25, 2011,which is hereby incorporated by reference herein in its entirety.

In a third approach, users of user equipment devices inside and outsidea home can use their media guidance application to communicate directlywith content source 416 to access content. Specifically, within a home,users of user television equipment 402 and user computer equipment 404may access the media guidance application to navigate among and locatedesirable content. Users may also access the media guidance applicationoutside of the home using wireless user communications devices 406 tonavigate among and locate desirable content.

In a fourth approach, user equipment devices may operate in a cloudcomputing environment to access cloud services. In a cloud computingenvironment, various types of computing services for content sharing,storage or distribution (e.g., video sharing sites or social networkingsites) are provided by a collection of network-accessible computing andstorage resources, referred to as “the cloud.” For example, the cloudcan include a collection of server computing devices, which may belocated centrally or at distributed locations, which provide cloud-basedservices to various types of users and devices connected via a networksuch as the Internet via communications network 414. These cloudresources may include one or more content sources 416 and one or moremedia guidance data sources 418. In addition or in the alternative, theremote computing sites may include other user equipment devices, such asuser television equipment 402, user computer equipment 404, and wirelessuser communications device 406. For example, the other user equipmentdevices may provide access to a stored copy of a video or a streamedvideo. In such embodiments, user equipment devices may operate in apeer-to-peer manner without communicating with a central server.

The cloud provides access to services, such as content storage, contentsharing, or social networking services, among other examples, as well asaccess to any content described above, for user equipment devices.Services can be provided in the cloud through cloud computing serviceproviders, or through other providers of online services. For example,the cloud-based services can include a content storage service, acontent sharing site, a social networking site, or other services viawhich user-sourced content is distributed for viewing by others onconnected devices. These cloud-based services may allow a user equipmentdevice to store content to the cloud and to receive content from thecloud rather than storing content locally and accessing locally-storedcontent.

A user may use various content capture devices, such as camcorders,digital cameras with video mode, audio recorders, mobile phones, andhandheld computing devices, to record content. The user can uploadcontent to a content storage service on the cloud either directly, forexample, from user computer equipment 404 or wireless usercommunications device 406 having content capture feature. Alternatively,the user can first transfer the content to a user equipment device, suchas user computer equipment 404. The user equipment device storing thecontent uploads the content to the cloud using a data transmissionservice on communications network 414. In some embodiments, the userequipment device itself is a cloud resource, and other user equipmentdevices can access the content directly from the user equipment deviceon which the user stored the content.

Cloud resources may be accessed by a user equipment device using, forexample, a web browser, a media guidance application, a desktopapplication, a mobile application, and/or any combination of accessapplications of the same. The user equipment device may be a cloudclient that relies on cloud computing for application delivery, or theuser equipment device may have some functionality without access tocloud resources. For example, some applications running on the userequipment device may be cloud applications, i.e., applications deliveredas a service over the Internet, while other applications may be storedand run on the user equipment device. In some embodiments, a user devicemay receive content from multiple cloud resources simultaneously. Forexample, a user device can stream audio from one cloud resource whiledownloading content from a second cloud resource. Or a user device candownload content from multiple cloud resources for more efficientdownloading. In some embodiments, user equipment devices can use cloudresources for processing operations such as the processing operationsperformed by processing circuitry described in relation to FIG. 3.

FIGS. 5 and 6 present an algorithm for control circuitry (e.g., controlcircuitry 304) to provide subscription recommendations to a user inaccordance with some embodiments of the disclosure. In some embodimentsthis algorithm may be encoded onto a non-transitory storage medium(e.g., storage device 308) as a set of instructions to be decoded andexecuted by processing circuitry (e.g., processing circuitry 306).Processing circuitry may in turn provide instructions to othersub-circuits contained within control circuitry 304, such as the tuning,video generating, encoding, decoding, encrypting, decrypting, scaling,analog/digital conversion circuitry, and the like.

The flowchart in FIG. 5 describes an algorithm for control circuitry(e.g., control circuitry 304) to recommend additional media contentbased on a content provider recommendation in accordance with someembodiments of the disclosure.

At step 502, the algorithm to recommend additional media content willbegin based on a content provider recommendation. In some embodiments,this may be done either directly or indirectly in response to a useraction or input (e.g., from signals received by control circuitry 304from detection module 316 or user input interface 310). For example, thealgorithm may begin directly in response to control circuitry 304receiving signals from user input interface 310, or control circuitry304 may prompt the user to confirm his or her input using a display(e.g., by generating a prompt to be displayed on display 312) prior torunning the algorithm.

At step 504, control circuitry 304 proceeds to retrieve the nextinstance of a subscription start date corresponding to a contentprovider from stored memory. In some embodiments, control circuitry 304may receive a single primitive data structure that represents the valueof a subscription start date. In some embodiments the value may bestored as part of a larger data structure, and control circuitry 304 mayretrieve the value by executing appropriate accessor methods to retrievethe value from the larger data structure.

At step 506, control circuitry 304 proceeds to compare the value of asubscription start date to the stored value of the date the media assetof interest to the user becomes available. In some embodiments, thevalue of the date the media asset of interest to the user becomesavailable may be stored (e.g., on storage device 308) prior to beginningthe algorithm. In some embodiments the value of the date the media assetof interest to the user becomes available may also be retrieved for eachand every instance of a subscription start date corresponding to thecontent provider, and the value of start date may change from iterationto iteration.

At step 508, control circuitry 304 compares the values of the start dateand the date the media asset of interest to the user becomes availableto determine if the start date is earlier than the date the media assetof interest to the user becomes available. If the condition issatisfied, the algorithm proceeds to 510; if the condition is notsatisfied, the algorithm proceeds to 512 instead.

At step 510, control circuitry 304 will execute a subroutine to providea recommendation of additional media content based on the days betweenthe start date and the date the media asset of interest to the userbecomes available based on the condition at step 508 being satisfied.After the subroutine is executed, the algorithm proceeds to step 518where it is determined whether all instances of the start date areaccounted for and whether further iterations are needed.

At step 512, control circuitry 304 compares the start date and the datethe media asset of interest to the user becomes available to determineif the start date is equal to the date the media asset of interest tothe user becomes available. If the condition is satisfied, the algorithmproceeds to step 514; if the condition is not satisfied, the algorithmproceeds to step 516 instead.

At step 514, control circuitry 304 executes a subroutine to add thecontent provider and subscription start date to a list of candidatesubscriptions based on the condition of step 512 being satisfied. Afterthe subroutine is executed, the algorithm proceeds to step 518 where itis determined whether all instances of the start date are accounted forand whether further iterations are needed.

At step 516, control circuitry 304 executes a subroutine to compute anew subscription start date corresponding to the content provider basedon both of the conditions in step 508 and step 512 not being satisfied.After the subroutine is executed, the algorithm proceeds to step 518where it is determined whether all instances of the start date areaccounted for and whether further iterations are needed.

At step 518, control circuitry 304 checks if all instances of the startdate are accounted for. If all of the instances have been evaluated,control circuitry 304 may proceed to step 520. If there are stillinstances that need to be processed, control circuitry 304 may proceedto step 504.

At step 520, control circuitry 304 executes a subroutine to display alist of candidate subscriptions and corresponding additional mediarecommendations as described above.

It is contemplated that the descriptions of FIG. 5 may be used with anyother embodiment of this disclosure. In addition, the descriptionsdescribed in relation to the algorithm of FIG. 5 may be done inalternative orders or in parallel to further the purposes of thisdisclosure. For example, conditional statements and logical evaluations,such as those at 508 and 512, may be performed in any order or inparallel or simultaneously to reduce lag or increase the speed of thesystem or method. As a further example, in some embodiments severalinstances of the start date may be evaluated in parallel, using multiplelogical processor threads, or the algorithm may be enhanced byincorporating branch prediction. Furthermore, it should be noted thatthe algorithm of FIG. 5 may be implemented on a combination ofappropriately configured software and hardware, and that any of thedevices or equipment discussed in relation to FIGS. 3-4 could be used toimplement one or more portions of the algorithm.

The pseudocode in FIG. 6 describes an algorithm to recommend additionalmedia content based on a content provider recommendation in accordancewith some embodiments of the disclosure. It will be evident to oneskilled in the art that the algorithm described by the pseudocode inFIG. 6 may be implemented in any number of programming languages and avariety of different hardware, and that the style and format should notbe construed as limiting, but rather a general template of the steps andprocedures that would be consistent with code used to implement someembodiments of this disclosure.

At line 601, control circuitry 304 runs a subroutine to initializevariables and prepare to recommend additional media content based on acontent provider recommendation, which begins on line 605. For example,control circuitry 304 may copy instructions from a non-transitorystorage medium (e.g., storage device 308) into RAM or into the cache forprocessing circuitry 306 during the initialization stage. Additionally,in some embodiments, the date the media asset of interest to the userbecomes available used for comparison may be retrieved, set and stored.

At line 605, control circuitry 304 receives instances of subscriptionstart dates corresponding to a content provider. In some embodimentsthese instances may be retrieved from stored memory.

At line 606, control circuitry 304 iterates through the variousinstances of start dates; if only a single instance is available,control circuitry 304 will only execute the loop once. This loop may beimplemented in multiple fashions depending on the choice of hardware andsoftware language used to implement the algorithm of FIG. 6; forexample, this may be implemented as part of a “for” or “while” loop.

At line 607, control circuitry 304 stores the value of the start dateinto a temporary variable “A.” In some embodiments the value of thestart date will be stored as part of a larger data structure or class,and the value of the start date may be obtained through appropriateaccessor methods. In some embodiments, the start date may be convertedfrom a string or other non-numeric data type into a numeric data type bymeans of an appropriate hashing algorithm. In some embodiments startdate may be encoded as a primitive data structure, and rather than usinga temporary variable, the start date may be directly used in thecomparisons at lines 609 and 611.

At line 608, control circuitry 304 stores the value of the date themedia asset of interest to the user becomes available into a temporaryvariable “B.” Similar to the start date, in some embodiments the datethe media asset of interest to the user becomes available will be storedas part of a larger data structure or class, and the date the mediaasset of interest to the user becomes available may be obtained throughaccessor methods. In some embodiments the date the media asset ofinterest to the user becomes available may be converted from a string orother non-numeric data type into a numeric data type by means of anappropriate hashing algorithm, or the date the media asset of interestto the user becomes available may be a primitive data structure, and maybe directly used in the comparisons at lines 609 and 611.

At line 609, control circuitry 304 compares the value of A to the valueof B to see if the date corresponding to B is later than the datecorresponding to A. This is achieved by subtracting the value of B fromA and then comparing the value of the difference to zero.

At line 610, control circuitry 304 executes a subroutine to recommendadditional media content based on the days between A and B using controlcircuitry 304 if the condition in line 609 is satisfied. In someembodiments this may be achieved by processing circuitry 306 sending theappropriate signals to control circuitry containing instructions forrecommending additional media content based on the days between A and B.

At line 611, control circuitry 304 compares the value of A and B todetermine if A is equal to B. In some embodiments this comparison willonly be done if A is not essentially earlier than B and the comparisonin line 609 evaluates to FALSE.

At line 612, control circuitry 304 executes a subroutine to add acontent provider and start date to a list of candidate subscriptionsusing control circuitry 304 if the condition in line 611 is satisfied.

At line 613, control circuitry 304 determines that if neither conditionin line 609 or 611 is satisfied, then the instruction at line 614 may beevaluated and executed.

At line 614, control circuitry 304 executes a subroutine to compute anew subscription start date using control circuitry 304 if neither ofthe conditions at lines 609 or 611 are satisfied.

At line 615, control circuitry 304 executes a subroutine to display alist of possible subscriptions and corresponding additional mediacontent recommendations upon termination of the for loop.

At line 616, control circuitry 304 runs a termination subroutine afterthe algorithm has performed its function. For example, in someembodiments, control circuitry 304 may destruct variables, performgarbage collection, free memory or clear the cache of processingcircuitry 306.

It will be evident to one skilled in the art that the algorithmdescribed by the pseudocode in FIG. 6 may be implemented in any numberof programming languages and a variety of different hardware, and theparticular choice and location of primitive functions, logicalevaluations, and function evaluations are not intended to be limiting.It will also be evident that the code may be refactored or rewritten tomanipulate the order of the various logical evaluations, to performseveral iterations in parallel rather than in a single iterative loop,or to otherwise manipulate and optimize run-time and performance metricswithout fundamentally changing the inputs or final outputs. For example,in some embodiments break conditions may be placed after lines 610 and612 to speed operation, or the conditional statements may be replacedwith a case-switch. In some embodiments, rather than iterating over allinstances of the start date at step 506, in some embodiments the codemay be rewritten so control circuitry 304 is instructed to evaluatemultiple instances of the start date simultaneously on a plurality ofprocessors or processor threads, lowering the number of iterationsneeded and potentially speeding up computation time.

FIGS. 7 and 8 present an algorithm for control circuitry (e.g., controlcircuitry 304) to identify a content provider having a media asset ofinterest to a user based on a determination that the media asset ofinterest to the user is currently unavailable using a databasecontaining a listing of media assets available from a content providerin accordance with some embodiments of the disclosure. Similar to thealgorithms described by FIGS. 5 and 6, in some embodiments thisalgorithm may be encoded onto a non-transitory storage medium (e.g.,storage device 308) as a set of instructions to be decoded and executedby processing circuitry (e.g., processing circuitry 306). Processingcircuitry may in turn provide instructions to other sub-circuitscontained within control circuitry 304, such as the tuning, videogenerating, encoding, decoding, encrypting, decrypting, scaling,analog/digital conversion circuitry, and the like.

The flowchart in FIG. 7 describes an algorithm for control circuitry(e.g., control circuitry 304) to search a database and identify acontent provider having a media asset of interest to the user that iscurrently unavailable to the user, in accordance with some embodimentsof the disclosure.

At step 702, control circuitry 304 may execute the algorithm to search adatabase and identify a content provider will begin based on adetermination that a media asset of interest to a user is not available.In some embodiments, this may be done either directly or indirectly inresponse to a user action or input (e.g., from signals received bycontrol circuitry 304 from detection module 316 or user input interface310.)

At step 704, control circuitry 304 proceeds to retrieve the nextinstance of the media asset of interest to the user from stored memory.In some embodiments, control circuitry 304 may retrieve a singleprimitive data structure that represents the value of the media asset ofinterest to the user. In some embodiments, control circuitry 304 mayretrieve the value from a larger class or data structure.

At step 706, control circuitry 304 accesses a database containing alisting of media assets available from a content provider. In someembodiments, this database may be stored locally (e.g., on storagedevice 308) prior to beginning the algorithm. In some embodiments thedatabase may also be accessed by using communications circuitry totransmit information across a communications network (e.g.,communications network 414) to a database implemented on a remotestorage device (e.g., media guidance data source 418).

At step 708, control circuitry 304 searches database tables for entriesmatching the media asset of interest to the user. In some embodimentsthis may be done by comparing an identifier, for example a string orinteger representing the media asset of interest to the user thatmatches the types of identifiers used inside the database. In someembodiments, control circuitry 304 may submit a general query to thedatabase for table entries matching the media asset of interest to theuser, and control circuitry 304 may receive a list of indices or a datastructure containing a portion of the database contents. In someembodiments, the database may implement a junction table that in turncompares entries from other databases. In this case, control circuitry304 may retrieve indices from a first database that in turn can be usedto retrieve information from a second database. Although we may describecontrol circuitry 304 interacting with a single database for purposes ofclarity, it is understood that the algorithm of FIG. 7 may beimplemented using multiple independent or cross-referenced databases.

At step 710, control circuitry 304 determines whether there are databaseentries matching the media asset of interest to the user. In someembodiments, control circuitry 304 may receive a signal from thedatabase indicating that there are no matching entries. In someembodiments, control circuitry 304 may instead receive a list of indicesor data structures with a NULL or dummy value. If control circuitry 304identifies that there are database entries matching the media asset ofinterest to the user, the algorithm proceeds to 712; otherwise thealgorithm proceeds to 714.

At step 712, control circuitry 304 executes a subroutine to identify apossible start date and subscription period and add the data to a listof candidate content providers. Afterwards, the algorithm may proceed tostep 720 where it is determined whether there are further instances ofthe media asset of interest to the user that need to be accounted for.

At step 714, control circuitry 304 determines whether there are databaseentries similar to the media asset of interest to the user. For example,in some embodiments, if the media asset of interest to the user isencoded as a string with multiple characters, control circuitry 304 mayperform additional database queries for similar strings with individualcharacters replaced, removed or added. In some embodiments, controlcircuitry 304 may also determine whether the original query was acommonly misspelled word, and will submit a query with the correctspelling instead. In another example, the media asset of interest to theuser may be encoded as an integer by a hashing function. For example,control circuitry 304 may compute a hash of an episode of a series byprefixing a number uniquely identifying the series to a numberidentifying the episode within series. Control circuitry 304 may performadditional queries for other integers within a certain range, forexample, by holding the prefixed series number fixed and varying theepisode number. In some embodiments, control circuitry 304 may comparemetadata corresponding to the media asset of interest to the user withmetadata corresponding to entries of the database. In some embodiments,control circuitry 304 may retrieve database entries similar to the mediaasset of interest to the user without further queries being required. Ifcontrol circuitry 304 identifies that there are database entries similarto the media asset of interest to the user, the control circuitry 304proceeds to step 716; otherwise control circuitry 304 proceeds to step718.

At step 716, control circuitry 304 executes a subroutine to store thecontent provider and associated similar media assets in a list ofcandidate content providers. Afterwards, control circuitry 304 proceedsto step 720.

At step 718, control circuitry 304 executes a subroutine to retrieveanother media asset of interest to the user that is unavailable afterdetermining that there were no matching database entries for the mediaasset of interest to the user. Afterwards, control circuitry 304 mayproceed to step 720.

At step 720, control circuitry 304 determines whether all instances ofmedia assets of interest to the user are accounted for and whetherfurther iterations are needed. If further iterations are needed thealgorithm will loop back to step 704 where control circuitry 304 willretrieve the next instance of a media asset of interest to the user. Ifno further iterations are needed control circuitry 304 proceeds to step722.

At step 722, control circuitry 304 executes a subroutine to recommend asubscription based on the candidate list of providers.

It is contemplated that the descriptions of FIG. 7 may be used with anyother embodiment of this disclosure. In addition, the descriptionsdescribed in relation to the algorithm of FIG. 7 may be done inalternative orders or in parallel to further the purposes of thisdisclosure. For example, control circuitry 304 may submit multiplequeries to the database in parallel, or it may submit multiple queriesto a plurality of similar databases in order to reduce lag and speed theexecution of the algorithm. As a further example, although we havedescribed step 712 and step 716 as being mutually exclusive, both exactentries and similar entries may be processed for a single instance ofthe media asset of interest to the user. To further this purpose, insome embodiments, step 710 and step 714 may be performed in parallel bycontrol circuitry 304. Furthermore, it should be noted that thealgorithm of FIG. 7 may be implemented on a combination of appropriatelyconfigured software and hardware, and that any of the devices orequipment discussed in relation to FIGS. 3-4 could be used to implementone or more portions of the algorithm.

The pseudocode in FIG. 8 describes an algorithm to identify a contentprovider having a media asset of interest to the user in accordance withsome embodiments of the disclosure. It will be evident to one skilled inthe art that the algorithm described by the pseudocode in FIG. 8 may beimplemented in any number of programming languages and a variety ofdifferent hardware, and that the style and format should not beconstrued as limiting, but rather as a general template of the steps andprocedures that would be consistent with code used to implement someembodiments of this disclosure.

At line 801, control circuitry 304 runs a subroutine to initializevariables and prepare to identify a content provider having a mediaasset of interest to the user, which begins on line 805. For example, insome embodiments, control circuitry 304 may copy instructions from anon-transitory storage medium (e.g., storage device 308) into RAM orinto the cache for processing circuitry 306 during the initializationstage.

At line 805, control circuitry 304 receives instances of media assets ofinterest to the user. In some embodiments these instances may beretrieved from stored memory.

At line 806, control circuitry 304 iterates through the variousinstances of media assets of interest to the user; if only a singleinstance is available, the loop will only execute once. This loop may beimplemented in multiple fashions depending on the choice of hardware andsoftware language used to implement the algorithm of FIG. 8; forexample, this may be implemented as part of a “for” or “while” loop, insome programming languages. In some embodiments it may be convenient tostore the instances of the media asset of interest to the user in asingle class or encapsulated data structure that will perform the loopas part of an internal method.

At line 807, control circuitry 304 queries a database for entriesmatching the media asset of interest to the user. Depending on how thedatabase is implemented and how the media asset of interest to the useris stored, an intermittent step may be required to convert the mediaasset of interest to the user into a form consistent with the database.For example, the media asset of interest to the user may be encoded intoa string or an integer using an appropriate hashing algorithm prior tobeing transmitted to the database by control circuitry 304 as part of aquery. In some embodiments the media asset of interest to the user maybe encoded as a primitive data structure, and control circuitry 304 maysubmit the media asset of interest to the user as a query to thedatabase directly. After querying the database, control circuitry 304may receive a set of database entries matching the media asset ofinterest to the user. In some embodiments, control circuitry 304 mayreceive these entries in the form of a data structure, a set of indicesof the database, or a set of indices of another cross-referenceddatabase.

At line 808, control circuitry 304 determines if there are any databaseentries matching the media asset of interest to the user. In someembodiments, control circuitry 304 may determine this by checking if thedatabase returned an empty data structure or a NULL value in response tothe query in line 807. If there are matching database entries thealgorithm may proceed to line 809. If there are no matching databaseentries the algorithm may instead proceed to line 812.

At line 809, control circuitry 304 retrieves one or more values of anavailability date and subscription period from the database entriesmatching the media asset of interest to the user. For example, ifcontrol circuitry 304 retrieves a list of indices after querying thedatabase in line 807, in some embodiments, control circuitry 304 mayretrieve the database entries for an availability date and subscriptionperiod located at the received indices. In some embodiments the indicesmay point to a larger data structure contained within the database, andcontrol circuitry 304 may retrieve the values of an availability dateand subscription period from within the data structure using appropriateaccessor methods. In some embodiments, control circuitry 304 mayretrieve the values of an availability date and subscription period andstore them in a separate data structure locally (e.g., in storage 308)prior to proceeding further. After retrieving the values of anavailability date and subscription period the algorithm will proceed toline 810.

At line 810, control circuitry 304 executes a subroutine to use thevalues of an availability date and subscription period and identifypossible start dates and subscription periods using control circuitry304. Afterwards, the algorithm may proceed to the termination subroutineat line 814.

At line 811, control circuitry 304 has determined that there were nodatabase entries matching the media asset of interest to the user. Inthis case, control circuitry 304 proceeds to line 812.

At line 812, control circuitry 304 executes a subroutine to storecontent provider information and similar media assets in memory usingcontrol circuitry 304.

At line 813, control circuitry 304 retrieves another media asset ofinterest to the user that is currently unavailable.

At line 815, control circuitry 304 executes a subroutine to recommend asubscription based on the list of candidate content providers.Afterwards, control circuitry 304 proceeds to the termination subroutineat line 817.

At line 817, control circuitry 304 executes a termination subroutineafter the algorithm has performed its function and all instances of themedia asset of interest to the user have been processed and checkedagainst the database. For example, in some embodiments, controlcircuitry 304 may destruct variables, perform garbage collection, freememory or clear the cache of processing circuitry 306.

It will be evident to one skilled in the art that the algorithmdescribed by the pseudocode in FIG. 8 may be implemented in any numberof programming languages and a variety of different hardware, and theparticular choice and location of primitive functions, logicalevaluations, and function evaluations are not intended to be limiting.It will also be evident that the code may be refactored or rewritten tomanipulate the order of the various logical evaluations, to performseveral iterations in parallel rather than in a single iterative loop,or to otherwise manipulate and optimize run-time and performance metricswithout fundamentally changing the inputs or final outputs. For example,in some embodiments the code may be rewritten so control circuitry 304is instructed to evaluate multiple instances of media assets of interestto the user and submit multiple database queries simultaneously using aplurality of processors or processor threads. It is also understood thatalthough we may describe control circuitry 304 interacting with a singledatabase, this is only a single embodiment described for illustrativepurposes, and the algorithm of FIG. 8 may be implemented using multipleindependent or cross-referenced databases. For example, a databasestored locally (e.g., on storage 308) may index or cross-reference adatabase stored remotely (e.g., media guidance data source 418), whichmay be accessible through any number of communication channels (e.g.,communications network 414). In some embodiments, this may allow controlcircuitry 304 to utilize a look-up table or database front-endefficiently stored on a small local drive to access a larger databasestored on a remote server on demand.

FIG. 9 illustrates an example of a user equipment device running (e.g.,via control circuitry 304) a media guidance application for managinguser access to content providers in accordance with the presentdisclosure. User equipment device 900 may comprise control circuitry,such as control circuitry 304, a display, such as display 312, a touchscreen and buttons, such as user input interface 310 and a speaker, suchas speakers 314. User equipment device 900 may comprise executable codestored in a memory, such as storage 308 or other computer readablemedium, for running the media guidance application. Control circuitry304 may generate for display (e.g., on display 312) an icon forapplication 902 on user equipment device 900. Application 902 may linkto code which, when executed by control circuitry 304, may manage useraccess to a content provider, in accordance with the present disclosure.User equipment device 950 depicts a display screen (e.g., display 312)displaying an exemplary media guidance application for managing useraccess to a content provider in accordance with the present disclosure.In an embodiment, control circuitry 304 generates for display, ondisplay 312 using control circuitry 304, a reminder message, such asreminder message 952 informing a user when said user needs to subscribeto a content provider. Control circuitry 304 generates for display, ondisplay 312 using control circuitry 304, a calendar visually indicatinga start date of a subscription, such as start date indicator 954, ascalculated by control circuitry 304 as described above. The mediaguidance application may generate for display, on display 312 usingcontrol circuitry 304, a visual reminder indicating when a media assetof interest to the user will become available. For example, the mediaguidance application generates for display, using control circuitry 304,a calendar, such as the calendar depicted on user equipment device 950,with a shaded square indicating the date on which the media asset ofinterest to the user will become available, such as availability dateindicator 956. The media guidance application may also generate fordisplay, using control circuitry 304, an indication of the subscriptionperiod length, such as subscription period indicator 958 in remindermessage 952.

FIG. 10 depicts a flowchart of illustrative steps for generating fordisplay a reminder message, such as reminder message 952 in accordancewith the present disclosure. It should be noted that process 1000, orany step thereof, could be performed on, or provided by, any of thedevices shown in FIGS. 3-4 and 9. For example, process 1000 may beexecuted by control circuitry 304 as instructed by a media guidanceapplication implemented on user equipment 402, 404, 406 in order togenerate for display reminder message 952 reminding a user to requestaccess to a content provider. In addition, one or more steps of process1000 may be incorporated into or combined with one or more steps of anyother process or embodiment (e.g., process 500, 700, 1100, 1200, 1400,and 1600).

At step 1002, control circuitry 304 determines that a media asset ofinterest to a user is currently unavailable. For example, controlcircuitry 304 may access, over communications network 414. a database,such as a database located at media guidance data source 418, containinga listing of media assets currently available to the user. The mediaguidance application may search, using control circuitry 304, for amedia asset of interest to the user in the database. If the media assetof interest to the user is not found, the media guidance applicationdetermines that the media asset of interest to the user is currentlyunavailable.

At step 1004, control circuitry 304 compares the media asset with adatabase listing media assets that will become available from variouscontent providers to identify a content provider from which the mediaasset will become available. For example, control circuitry 304 mayaccess a database, such as a database located at media guidance datasource 418, listing upcoming media assets that will become availablefrom a plurality of providers, over communications network 414, tocompare the media asset with the database to identify content providersfrom which the media asset will become available.

At step 1006, control circuitry 304 compares the media asset with adatabase listing dates at which media assets will become available fromthe content provider to identify a date at which the media asset becomesavailable from the content provider. For example, control circuitry 304may access a database corresponding to a content provider, such as adatabase located at media guidance data source 418 via communicationsnetwork 414, containing information about a date on which content willbecome available from the provider. The media guidance application maycompare the database, using control circuitry 304, with the media assetof interest to the user to identify the date which the media asset willbecome available.

At step 1008, control circuitry 304 compares the date in a databaselisting date ranges associated with different subscription periods forthe content provider to determine a subscription period that includesthe date. For example, control circuitry 304 may access a database, suchas a database located at media guidance data source 418, viacommunications network 414, listing various subscription periods andsubscription start and end dates. Control circuitry 304 may determine,as described above, a subscription period that includes the date thatthe media asset of interest to the user will become available.

At step 1010, control circuitry 304 determines a start date for thesubscription period. For example, control circuitry 304 may determine astart date for the subscription period, by identifying a date by, forexample, identifying the earliest date on which a user may subscribe tothe content provider and still have access to the media asset ofinterest before the end of the subscription period. For example, themedia guidance application may identify, using control circuitry 304, amedia asset of interest to the user available in 45 days. The mediaguidance application may calculate the start date to be 30 days beforethe day the media asset of interest to the user becomes available for aone-month subscription period.

At step 1012, control circuitry 304 generates for display, on a displayscreen, such as display 312, a reminder, such as reminder message 952,to the user to request access to the content provider on the start date.The media guidance application may generate for display on display 312,using control circuitry 304, reminder message 952 containingsubscription period indicator 958, start date indicator 954 andavailability date indicator 956.

It is contemplated that the steps or descriptions of FIG. 10 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 10 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Furthermore, it should be noted that anyof the devices or equipment discussed in relation to FIGS. 3-4 and 9could be used to perform one or more of the steps in FIG. 10.

FIG. 11 depicts a flowchart of illustrative steps for providing arecommendation to a user in accordance with the present disclosure. Itshould be noted that process 1100, or any step thereof, could beperformed on, or provided by, any of the devices shown in FIGS. 3-4 and9. For example, process 1100 may be executed by control circuitry 304 asinstructed by a media guidance application implemented on user equipment402, 404, and/or 406 in order to generate a recommendation. In addition,one or more steps of process 1100 may be incorporated into or combinedwith one or more steps of any other process or embodiment (e.g., process500, 700, 1000, 1200, 1400, and 1600).

At step 1102, control circuitry 304 determines a date a media asset ofinterest to a user becomes available. For example, the media guidanceapplication may identify, using control circuitry 304, a media asset ofinterest to the user as described above. Control circuitry 304, maycompare the media asset of interest to the user with a database, such asa database located at media guidance data source 418 via communicationsnetwork 414, containing availability dates of media assets correspondingto a content provider to identify a date that the media asset ofinterest to the user will become available.

At step 1104, control circuitry 304 determines a start date. Forexample, the media guidance application may determine, using controlcircuitry 304, the start date to be a day before the media asset ofinterest to the user will become available. This is just an exemplarymethod the media guidance application may use to determine the startdate; the media guidance application may determine, using controlcircuitry 304, the start date using any of the steps described above.

At step 1106, control circuitry 304 determines if a recommendation is tobe made based on the number of days between the start date and the datethe media asset of interest to the user becomes available. For example,the media guidance application may retrieve, using control circuitry304, from a user profile stored in storage 308, a setting indicatingwhether a user would like to be provided with recommendations based onthe number of days. In another example, control circuitry 304 may prompta user as to whether the user would like a recommendation based on thenumber of days. The media guidance application may generate for display,on display 312 using control circuitry 304, a prompt, said promptrequesting user input via user input interface 310 as to whether saiduser wants a recommendation based on the number of days. If the mediaguidance application detects, using control circuitry 304, that arecommendation based on the number of days is to be provided by controlcircuitry 304, control circuitry 304 proceeds to step 1108. Otherwise,the control circuitry 304 proceeds to step 1112.

At step 1108, control circuitry 304 determines the number of daysbetween the date and the start date. For example, the media guidanceapplication may calculate, using control circuitry 304, the number ofdays between the date and the start date as described above. Forexample, control circuitry 304 may subtract, using control circuitry 304the date the media asset of interest becomes available from the startdate.

At step 1110, control circuitry 304 generates criteria based on thenumber of days between the date and the start date. For example, themedia guidance application may generate, using control circuitry 304, acriterion, such as threshold number of media assets to recommend basedon the number of days (e.g., in order for the user to have at least onemedia asset to consume each day). The media guidance application maygenerate, using control circuitry 304, a criterion based on the numberof days in accordance with any of the steps mentioned above.

At step 1112, control circuitry 304 determines whether a recommendationbased on a day of the week between the date and the start date is to begenerated by control circuitry 304. For example, the media guidanceapplication may retrieve, using control circuitry 304, user profile dataindicating a user preference for recommendations based on the day of theweek. For example, the media guidance application may retrieve, usingcontrol circuitry 304, user profile data from a memory, such as storage308, indicating that a user only consumes media assets on the weekends.The media guidance application may determine, using control circuitry304, that a recommendation should be provided by the media guidanceapplication for a day of the week, such as a Saturday or Sunday (i.e., aday of the weekend). In another example, the media guidance applicationmay prompt the user, using control circuitry 304 by generating fordisplay on display 312, for instructions on whether to proceed withproviding a recommendation based on a day of the week. The mediaguidance application may receive, at control circuitry 304 via userinput interface 310, a request to provide a recommendation based on aday of the week. If the media guidance application determines, usingcontrol circuitry 304, that a recommendation based on the day of theweek is to be provided, control circuitry 304 may proceed to step 1114.Otherwise, the media guidance application may proceed to step 1118.

At step 1114, control circuitry 304 determines a day of the week betweenthe date and the start date. For example, the media guidance applicationmay prompt, by displaying a message on display 312 using controlcircuitry 304, a request for user input of a day of the week. Forexample, the media guidance application may receive, at controlcircuitry 304, user input, via user input interface 310, indicating aday of the week. In another example, the media guidance application maydetermine, using control circuitry 304, the day of the week byretrieving user profile data (e.g., using control circuitry 304 byaccessing a user profile database via communications network 414 locatedat media guidance data source 418) and determining a day of the week onwhich the user consumes the most media assets. For example, the mediaguidance application may receive, using control circuitry 304, a vectorlisting a number of media assets consumed by a user for each day of theweek. The media guidance application may analyze the vector, usingcontrol circuitry 304, to determine the maximum number in the vector anda position corresponding to the maximum number. The media guidanceapplication may correlate, using control circuitry 304, the position inthe vector to a day of the week, by, for example, comparing the positionin the vector to values in a lookup table located in memory, such asstorage 308. Control circuitry 304 may use the day of the week from thecomparison with the look-up table as the day of the week.

At step 1116, control circuitry 304 generates criteria based on a day ofthe week between a date that the media asset of interest to the user isavailable and a start date. The media guidance application may generatea criterion, such as a user preference corresponding to a day of theweek, using control circuitry 304. For example, the media guidanceapplication may determine, by accessing user profile information locatedin a database using control circuitry 304, such as a database of userinformation in media guidance data source 418 via communications network414, that a user prefers to consume a specific type of media assets on aspecific day of the week. For example, the media guidance applicationmay use control circuitry 304 to determine that a user consumes mostlymovies on Saturday by enumerating the type of media assets consumed by auser on Saturday (e.g., based on user profile information) anddetermining the most prevalent type of media asset. The media guidanceapplication may generate, using control circuitry 304, a criterion, suchas a criterion requiring a recommendation of a movie (i.e., as opposedto a show, documentary, music album, etc.). However, this is just anexemplary type of criterion that may be generated by a media guidanceapplication. One of ordinary skill in the art will realize that manytypes of criteria, such as a genre criteria, actor/actress criteria,etc., may be generated using similar steps. In another example, themedia guidance application may determine, using control circuitry 304,that a user watches a specific number of media assets during a day ofthe week as described above. For example, the media guidance applicationmay determine that a user consistently consumes ten media assets onSaturday. The media guidance application may generate, using controlcircuitry 304, a criterion, such as a criterion indicating a number ofmedia assets to recommend to a user.

At step 1118, control circuitry 304 selects a media asset based ongenerated criteria. For example, in the example where the media guidanceapplication determines criteria such as a type of media asset, the mediaguidance application may select, using control circuitry 304, a mediaasset matching the asset type. The media guidance applications mayaccess, via communications network 414 using control circuitry 304, adatabase, such as a database of media assets available to a user inmedia guidance data source 418. The media guidance application may applymultiple criteria, using control circuitry 304, to select the media. Forexample, the media guidance application may apply a second criterion,generated by the media guidance application using control circuitry 304,such as a genre (e.g., horror genre). For example, the media guidanceapplication may select, using control circuitry 304, a media asset suchthat the media asset is movie of the horror genre as described above.

It is contemplated that the steps or descriptions of FIG. 11 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 11 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Furthermore, it should be noted that anyof the devices or equipment discussed in relation to FIGS. 3-4 and 9could be used to perform one or more of the steps in FIG. 11.

FIGS. 12 and 13 present an algorithm for control circuitry (e.g.,control circuitry 304) to determine subscription terms based on a userprofile and user profile characteristic of interest to a contentprovider in accordance with some embodiments of the disclosure. In someembodiments, this algorithm may be encoded onto a non-transitory storagemedium (e.g., storage device 308) as a set of instructions to be decodedand executed by processing circuitry (e.g., processing circuitry 306).Processing circuitry may in turn provide instructions to othersub-circuits contained within control circuitry 304, such as the tuning,video generating, encoding, decoding, encrypting, decrypting, scaling,analog/digital conversion circuitry, and the like.

The flowchart in FIG. 12 describes an algorithm for control circuitry(e.g., control circuitry 304) to determine subscription terms inaccordance with some embodiments of the disclosure.

At step 1202, control circuitry 304 executes the algorithm to determinesubscription terms based on user input requesting management of asubscription. In some embodiments, this may be done either directly orindirectly in response to a user action or input (e.g., from signalsreceived by control circuitry 304 or user input interface 310). Forexample, the algorithm may begin directly in response to controlcircuitry 304 receiving signals from user input interface 310, orcontrol circuitry 304 may prompt the user to confirm his or her inputusing a display (e.g., by generating a prompt to be displayed on display312) prior to running the algorithm.

At step 1204, control circuitry 304 proceeds to retrieve the next userprofile characteristic of interest to the content provider from memory.In some embodiments, control circuitry 304 may receive a singleprimitive data structure that represents the value of the profilecharacteristic of interest to the content provider. In some embodimentsthe value may be stored as part of a larger data structure, and controlcircuitry 304 may retrieve the value by executing appropriate accessormethods to retrieve the value from the larger data structure.

At step 1206, control circuitry 304 proceeds to compare the value of theprofile characteristic of interest to the content provider to the storedvalue of the user profile. In some embodiments, the user profile may bestored (e.g., on storage device 308) prior to beginning the algorithm.In some embodiments, the user profile may also be retrieved for each andevery user profile characteristic, and the user profile may change fromiteration to iteration. In some embodiments, control circuitry 304 maydirectly compare the user profile with the user profile characteristicby accessing the values respectively from memory and performing a valuecomparison. In some instances, control circuitry 304 may call acomparison function (e.g., for object to object comparison) to comparethe user profile characteristic and the user profile.

At step 1208, control circuitry 304 compares the user profilecharacteristic and the user profile to determine whether the userprofile characteristic matches the user profile by at least a thresholdvalue. The threshold value may be accessed from memory or may berequested by control circuitry 304 from the content provider. If thecondition is satisfied, the algorithm may proceed to step 1210; if thecondition is not satisfied, the algorithm may proceed to step 1212instead.

At step 1210, control circuitry 304 executes a subroutine to determinesubscription terms based on the degree to which the profilecharacteristic matches the user profile based on the condition at step1208 being satisfied. After the subroutine is executed, the algorithmmay proceed to step 1218.

At step 1212, control circuitry 304 compares a number of users wishingto sign up for the content provider to a threshold number to, forexample, a minimum number of users requested by the content provider. Ifthe condition is satisfied, control circuitry 304 proceeds to step 1214;if the condition is not satisfied, control circuitry 304 proceeds tostep 1216 instead.

At step 1214, control circuitry 304 executes a subroutine to determinesubscription terms based on the number of users subscribing to thecontent provider based on the condition of step 1212 being satisfied.For example, control circuitry 304 may retrieve a subscription discountof 5% if a threshold number of users, as determined by the contentprovider, sign up for the subscription. After the subroutine isexecuted, the algorithm may proceed to step 1218 where it is determinedwhether all user profile characteristics are accounted for and whetherfurther iterations are needed.

At step 1216, control circuitry 304 executes a subroutine to determinesubscription terms based on standard subscription terms when both of theconditions in step 1208 and step 1212 are not satisfied. After thesubroutine is executed, control circuitry 304 proceeds to step 1218.

At step 1218, control circuitry 304 checks whether all user profilecharacteristics are accounted for. If all of the instances have beenevaluated, control circuitry 304 proceeds to step 1220. For example,control circuitry 304 may call a function to see whether there is a nextuser profile characteristic. If the function returns true (i.e., thereare still instances that need to be processed), control circuitry 304proceeds to step 1204.

At step 1220, control circuitry 304 executes a subroutine to transmitthe subscription terms to the content provider in a first subscriptionrequest using communications network 414.

It is contemplated that the descriptions of FIG. 12 may be used with anyother embodiment of this disclosure. In addition, the descriptionsdescribed in relation to the algorithm of FIG. 12 may be done inalternative orders or in parallel to further the purposes of thisdisclosure. For example, conditional statements and logical evaluations,such as those at 1208 and 1212, may be performed in any order or inparallel or simultaneously to reduce lag or increase the speed of thesystem or method. As a further example, in some embodiments several userprofile characteristics may be evaluated in parallel, using multiplelogical processor threads, or the algorithm may be enhanced byincorporating branch prediction. Furthermore, it should be noted thatthe algorithm of FIG. 12 may be implemented on a combination ofappropriately configured software and hardware, and that any of thedevices or equipment discussed in relation to FIGS. 3-4 could be used toimplement one or more portions of the algorithm.

The pseudocode in FIG. 13 describes an algorithm to determinesubscription terms based on a user profile and user profilecharacteristics in accordance with some embodiments of the disclosure.It will be evident to one skilled in the art that the algorithmdescribed by the pseudocode in FIG. 13 may be implemented in any numberof programming languages and a variety of different hardware, and thatthe style and format should not be construed as limiting, but rather ageneral template of the steps and procedures that would be consistentwith code used to implement some embodiments of this disclosure.

At line 1301, control circuitry 304 executes the algorithm to run asubroutine to initialize variables and prepare to determine subscriptionterms, which begins on line 1305. For example, in some embodiments,control circuitry 304 may copy instructions from a non-transitorystorage medium (e.g., storage device 308) into RAM or into the cache forprocessing circuitry 306 during the initialization stage. Additionally,in some embodiments the user profile being used for comparison may beretrieved, set, and stored at 1301.

At line 1305, control circuitry 304 receives instances of user profilecharacteristics of interest to the content provider. In some embodimentsthese instances may be retrieved from memory or via networkcommunication with the content provider. Control circuitry 304 mayreceive user profile characteristics by receiving, for example, apointer to an array of values of user profile characteristics. Inanother example, control circuitry 304 may receive an object of a class,such as an iterator object containing user profile characteristics.

At line 1306, control circuitry 304 iterates through the various userprofile characteristics; if only a single instance is available, theloop will only execute once. This loop may be implemented in multiplefashions depending on the choice of hardware and software language usedto implement the algorithm of FIG. 13; for example, this may beimplemented as part of a “for” or “while” loop.

At line 1307, control circuitry 304 stores the user profilecharacteristic into a temporary variable “A.” In some embodiments theuser profile characteristic will be stored as part of a larger datastructure or class, and the user profile characteristic may be obtainedthrough appropriate accessor methods. In some embodiments the userprofile characteristic may be converted from a string or othernon-numeric data type into a numeric data type by means of anappropriate hashing algorithm. In some embodiments, control circuitry304 may call a function to perform a comparison of the user profilecharacteristic to the user profile. In some embodiments the user profilecharacteristic may be encoded as a primitive data structure, and ratherthan using a temporary variable, the user profile characteristic may bedirectly used in the comparisons at lines 1309 and 1311.

At line 1308, control circuitry 304 stores the user profile into atemporary variable “B.” Similar to the user profile characteristic, insome embodiments the user profile will be stored as part of a largerdata structure or class, and the user profile may be obtained throughaccessor methods. In some embodiments, user profile data may beconverted from a string or other non-numeric data type into a numericdata type by means of an appropriate hashing algorithm, or the userprofile may be a primitive data structure, and may be directly used inthe comparisons at lines 1309 and 1311.

At line 1309, control circuitry 304 compares the value of A to the valueof B to see if A is similar to B by at least a threshold value. This isachieved by calling a function to calculate a degree of similaritybetween B from A, and then comparing the similarity value to apredetermined threshold value, or tolerance level. In some embodimentsthe tolerance level may be a set percentage of either A or B. In someembodiments the tolerance level may be a fixed number. For example,setting the tolerance level to a set multiple of machine epsilon mayallow for the algorithm to account for small rounding errors that mayresult from the use of floating point arithmetic. In some embodimentsthe tolerance level may be set to zero, or the condition inside the IFstatement may be replaced with a strict equivalence between A and B.

At line 1310, control circuitry 304 executes a subroutine to determinesubscription terms based on the degree to which the user profilecharacteristic matches the profile of the user, if the condition in line1309 is satisfied.

At line 1311, control circuitry 304 compares the value of A and B todetermine if A and B are similar by less than a threshold value. In someembodiments this comparison will only be done if A is not similar to Bby at least a threshold value and the comparison in line 1309 evaluatesto FALSE.

At line 1312, control circuitry 304 executes a subroutine to determinesubscription terms based on the number of users subscribing to thecontent provider if the condition in line 1311 is satisfied.

At line 1313, control circuitry 304 determines whether neither conditionin line 1309 or 1311 are satisfied. If neither condition is satisfied,then the instruction at line 1314 is evaluated and executed.

At line 1314, control circuitry 304 executes a subroutine to determinesubscription terms based on standard subscription terms if neither ofthe conditions at lines 1309 or 1311 are satisfied. For example, controlcircuitry 304 may determine subscription terms comprising no discount.

At line 1315, control circuitry 304 executes a subroutine to transmitsubscription terms to the content provider in a subscription requestusing control circuitry 304 and communications network 414.

At line 1317, control circuitry 304 runs a termination subroutine afterthe algorithm has performed its function. For example, in someembodiments, control circuitry 304 may destruct variables, performgarbage collection, free memory or clear the cache of processingcircuitry 306.

It will be evident to one skilled in the art that the algorithmdescribed by the pseudocode in FIG. 13 may be implemented in any numberof programming languages and a variety of different hardware, and theparticular choice and location of primitive functions, logicalevaluations, and function evaluations are not intended to be limiting.It will also be evident that the code may be refactored or rewritten tomanipulate the order of the various logical evaluations, perform severaliterations in parallel rather than in a single iterative loop, or tootherwise manipulate and optimize run-time and performance metricswithout fundamentally changing the inputs or final outputs. For example,in some embodiments break conditions may be placed after lines 1310 and1312 to speed operation, or the conditional statements may be replacedwith a case-switch. In some embodiments, rather than iterating over alluser profile characteristics at step 1206, the code may be rewritten socontrol circuitry 304 is instructed to evaluate multiple user profilecharacteristics simultaneously on a plurality of processors or processorthreads, lowering the number of iterations needed and potentiallyspeeding up computation time.

FIGS. 14 and 15 present an algorithm for control circuitry (e.g.,control circuitry 304) to search a database to identify user profilecharacteristics of interest to a content provider that match a userprofile of a user, based on receiving a request to manage a mediacontent subscription for the user in accordance with some embodiments ofthe disclosure. Based on the identified user profile characteristics ofinterest to the content provider that match the profile of the user,control circuitry 304 may determine subscription terms between the userand the content provider. Similar to the algorithms described by FIGS.12 and 13, in some embodiments this algorithm may be encoded on to anon-transitory storage medium (e.g., storage device 308) as a set ofinstructions to be decoded and executed by processing circuitry (e.g.,processing circuitry 306). Processing circuitry may in turn provideinstructions to other sub-circuits contained within control circuitry304, such as the tuning, video generating, encoding, decoding,encrypting, decrypting, scaling, analog/digital conversion circuitry,and the like.

The flowchart in FIG. 14 describes an algorithm for control circuitry(e.g., control circuitry 304) to identify user profile characteristicsof interest to a content provider in accordance with some embodiments ofthe disclosure.

At step 1402, control circuitry 304 executes the algorithm to search adatabase to identify user profile characteristics of interest to theuser will begin based on a request to manage a media contentsubscription for a user. In some embodiments, this may be done eitherdirectly or indirectly in response to a user action or input (e.g., fromsignals received by control circuitry 304 or user input interface 310.)

At step 1404, control circuitry 304 retrieves the next user profilecharacteristic from memory. In some embodiments, control circuitry 304may retrieve a single primitive data structure that represents the userprofile characteristic. In some embodiments, control circuitry 304 mayretrieve the value from a larger class or data structure.

At step 1406, control circuitry 304 accesses a database containing userprofile data corresponding to the content provider. In some embodiments,this database may be stored locally (e.g., on storage device 308) priorto beginning the algorithm. In some embodiments the database may also beaccessed by using communications circuitry to transmit informationacross a communications network (e.g., communications network 414) to adatabase implemented on a remote storage device (e.g., media guidancedata source 418).

At step 1408, control circuitry 304 searches database tables for entriesmatching a user profile characteristic. In some embodiments this may bedone by comparing an identifier, for example, a string or integerrepresenting the user profile characteristic, that matches the types ofidentifiers used inside the database. In some embodiments, controlcircuitry 304 may submit a general query to the database for tableentries matching the user profile characteristic, and control circuitry304 may receive a list of indices or a data structure containing aportion of the database contents. In some embodiments the database mayimplement a junction table that in turn cross-references entries fromother databases. In this case, control circuitry 304 may retrieveindices from a first database that in turn can be used to retrieveinformation from a second database. Although we may describe controlcircuitry 304 interacting with a single database for purposes ofclarity, it is understood that the algorithm of FIG. 14 may beimplemented using multiple independent or cross-referenced databases.

At step 1410, control circuitry 304 determines if there are databaseentries matching the user profile characteristic. In some embodiments,control circuitry 304 may receive a signal from the database indicatingthat there are no matching entries. In some embodiments, controlcircuitry 304 may instead receive a list of indices or data structureswith a NULL or dummy value. If control circuitry 304 identifies thatthere are database entries matching the user profile characteristic thealgorithm proceeds to step 1412; otherwise, the algorithm proceeds tostep 1414.

At step 1412, control circuitry 304 executes a subroutine to enumeratethe number of database entries matching the user profile characteristic.Afterwards, the algorithm may proceed to step 1420 where it isdetermined if there are further user profile characteristics that needto be accounted for.

At step 1414, control circuitry 304 determines if there are databaseentries similar to the user profile characteristic. For example, in someembodiments, if the user profile characteristic is encoded as a stringwith multiple characters (e.g., a nationality), control circuitry 304may perform additional database queries for similar strings withindividual characters replaced, removed or added. In some embodiments,control circuitry 304 may also determine if the original query was acommonly misspelled word, and will submit a query with the correctspelling instead. In another example, the user profile characteristicmay be encoded as an integer (e.g., an age or an income). Controlcircuitry 304 may perform additional queries for other integers within acertain range (e.g., a range of ages or incomes). In some embodiments,control circuitry 304 may retrieve database entries similar to the userprofile characteristic without requiring further queries. If controlcircuitry 304 identifies that there are database entries similar to theuser profile characteristic the algorithm proceeds to step 1416;otherwise, the algorithm proceeds to step 1418.

At step 1416, control circuitry 304 executes a subroutine to determine asimilarity of the database entry to the user profile characteristic andenumerate the number of similar database entries, weighted by arespective similarity. Afterwards, the algorithm may proceed to step1420.

At step 1418, control circuitry 304 executes a subroutine to remove theuser profile characteristic from a list of user profile characteristicsof interest to the content provider after determining that there were nomatching database entries for the user profile characteristic.Afterwards, the algorithm may proceed to step 1420.

At step 1420, control circuitry 304 determines if all user profilecharacteristics are accounted for and if further iterations are needed.If further iterations are needed, the algorithm will loop back to step1404 where control circuitry 304 will retrieve the next user profilecharacteristic. If no further iterations are needed, the algorithm willproceed to step 1422.

At step 1422, control circuitry 304 executes a subroutine to identifyuser profile characteristics of interest to the content provider, basedon the enumerated user profile characteristics.

It is contemplated that the descriptions of FIG. 14 may be used with anyother embodiment of this disclosure. In addition, the descriptionsdescribed in relation to the algorithm of FIG. 14 may be done inalternative orders or in parallel to further the purposes of thisdisclosure. For example, control circuitry 304 may submit multiplequeries to the database in parallel, or it may submit multiple queriesto a plurality of similar databases in order to reduce lag and speed theexecution of the algorithm. As a further example, although step 1412 andstep 1416 are described as being mutually exclusive, both exact entriesand similar entries may be processed for a single instance of the userprofile characteristic. To further this purpose, in some embodiments,step 1410 and step 1414 may be performed in parallel by controlcircuitry 304. Furthermore, it should be noted that the algorithm ofFIG. 14 may be implemented on a combination of appropriately configuredsoftware and hardware, and that any of the devices or equipmentdiscussed in relation to FIGS. 3-4 could be used to implement one ormore portions of the algorithm.

The pseudocode in FIG. 15 describes an algorithm to identify userprofile characteristics of interest to a content provider in accordancewith some embodiments of the disclosure. It will be evident to oneskilled in the art that the algorithm described by the pseudocode inFIG. 15 may be implemented in any number of programming languages and avariety of different hardware, and that the style and format should notbe construed as limiting, but rather a general template of the steps andprocedures that would be consistent with code used to implement someembodiments of this disclosure.

At line 1501, control circuitry 304 executes the algorithm to run asubroutine to initialize variables and prepare to identify user profilecharacteristics of interest to a content provider, which begins on line1505. For example, in some embodiments, control circuitry 304 may copyinstructions from a non-transitory storage medium (e.g., storage device308) into RAM or into the cache for processing circuitry 306 during theinitialization stage.

At line 1505, control circuitry 304 receives user profilecharacteristics of interest to a user. In some embodiments theseinstances may be retrieved from storage 308.

At line 1506, control circuitry 304 iterates through the user profilecharacteristics; if only a single instance is available, the loop willonly execute once. This loop may be implemented in multiple fashionsdepending on the choice of hardware and software language used toimplement the algorithm of FIG. 15; for example, this may be implementedas part of a “for” or “while” loop, in some programming languages. Insome embodiments it may be convenient to store the user profilecharacteristics in a single class or encapsulated data structure thatwill perform the loop as part of an internal method.

At line 1507, control circuitry 304 queries a database for entriesmatching the user profile characteristic. Depending on how the databaseis implemented and how the user profile characteristic is stored, anintermittent step may be required to convert the user profilecharacteristic into a form consistent with the database. For example,the user profile characteristic may be encoded into a string or aninteger using an appropriate hashing algorithm prior to beingtransmitted to the database by control circuitry 304 as part of a query.In some embodiments, the user profile characteristic may be encoded as aprimitive data structure, and control circuitry 304 may submit the userprofile characteristic as a query to the database directly. Afterquerying the database, control circuitry 304 may receive a set ofdatabase entries matching the user profile characteristic. In someembodiments, control circuitry 304 may receive these entries in the formof a data-structure, a set of indices of the database, or a set ofindices of another cross-referenced database.

At line 1508, control circuitry 304 determines if there are any databaseentries matching the user profile characteristic. In some embodiments,control circuitry 304 may determine this by checking if the databasereturned an empty data structure or a NULL value in response to thequery in line 1507. If there are matching database entries, thealgorithm may proceed to line 1509. If there were no matching databaseentries, the algorithm may instead proceed to line 1512.

At line 1509, control circuitry 304 executes a subroutine to enumerateall database entries matching the user profile characteristic usingcontrol circuitry 304. Afterwards, the algorithm may proceed to line1514.

At line 1511, control circuitry 304 determines if there are any databaseentries similar to the user profile characteristic. For example, theuser profile characteristic may be represented by an object of a class.Control circuitry 304 may call a function to perform a fuzzy comparison(e.g., a comparison to identify similar objects of the class) bycomparing specific fields of the class or by performing approximatestring matching on data related to the user profile characteristic. Ifdatabase entries similar to the user profile characteristic are found bycontrol circuitry 304, then the algorithm proceeds to line 1511. Ifcontrol circuitry 304 does not find matching entries (e.g., a query tothe database returns a NULL value), the algorithm proceeds to line 1512.

At line 1511, control circuitry 304 executes a subroutine to enumeratethe number of similar database entries weighted by a similarity of theentry using control circuitry 304. Afterwards, the algorithm may proceedto line 1514.

At line 1512, control circuitry 304 determines that there were nodatabase entries matching or similar to the user profile characteristic.In this case, the algorithm will proceed to line 1513.

At line 1513, control circuitry 304 executes a subroutine to remove userprofile characteristics from a list of user profile characteristics ofinterest to the content provider using control circuitry 304.Afterwards, the algorithm may proceed to line 1514.

At line 1514, control circuitry 304 executes a subroutine to identifyuser profile characteristics of interest to the content provider basedon the enumerated profile characteristics using control circuitry 304.For example, the control circuitry may identify the top ten user profilecharacteristics, based on the enumeration, as the profilecharacteristics of interest to the user.

At line 1516, control circuitry 304 executes a termination subroutineafter the algorithm has performed its function and all user profilecharacteristics have been processed and checked against the database.For example, in some embodiments, control circuitry 304 may destructvariables, perform garbage collection, free memory or clear the cache ofprocessing circuitry 306.

It will be evident to one skilled in the art that the algorithmdescribed by the pseudocode in FIG. 15 may be implemented in any numberof programming languages and a variety of different hardware, and theparticular choice and location of primitive functions, logicalevaluations, and function evaluations are not intended to be limiting.It will also be evident that the code may be refactored or rewritten tomanipulate the order of the various logical evaluations, perform severaliterations in parallel rather than in a single iterative loop, or tootherwise manipulate and optimize run-time and performance metricswithout fundamentally changing the inputs or final outputs. For example,in some embodiments the code may be rewritten so control circuitry 304is instructed to evaluate multiple user profile characteristics andsubmit multiple database queries simultaneously using a plurality ofprocessors or processor threads. It is also understood that although wemay describe control circuitry 304 interacting with a single database,this is only a single embodiment described for illustrative purposes,and the algorithm of FIG. 15 may be implemented using multipleindependent or cross-referenced databases. For example, a databasestored locally (e.g., on storage 308) may index or cross-reference adatabase stored remotely (e.g., media guidance data source 418), whichmay be accessible through any number of communication channels (e.g.,communications network 414). In some embodiments, this may allow controlcircuitry 304 to utilize a look-up table or database front-endefficiently stored on a small local drive to access a larger databasestored on a remote server on demand.

FIG. 16 depicts a flowchart of illustrative steps for generating fordetermining subscription terms in accordance with the presentdisclosure. It should be noted that process 1600, or any step thereof,could be performed on, or provided by, any of the devices shown in FIGS.3-4 and 9. For example, process 1600 may be executed by controlcircuitry 304 as instructed by a media guidance application implementedon user equipment 402, 404, 406 in order to generate subscription terms.In addition, one or more steps of process 1600 may be incorporated intoor combined with one or more steps of any other process or embodiment(e.g., process 500, 700, 1000, 1100, 1200 and 1400).

At step 1602, control circuitry 304 retrieves a user profile frommemory. For example, control circuitry 304 may access a remote or localdatabase (e.g., a database stored at media guidance data source 418 viacommunications network 414 or storage 308) comprising a user profile.

At step 1604, control circuitry 304 searches a database of media assetsavailable from a plurality of content providers to identify a pluralityof media assets matching a user preference in the user profile. Forexample, the media guidance application may access a database of mediaassets available from a plurality of content providers, such as adatabase stored at media guidance data source 418, to correlate metadataof media assets with data stored in a user profile. Control circuitry304 may identify a plurality of media assets matching the user profiledata.

At step 1606, control circuitry 304 identifies a first subset of theplurality of media assets available form a first content provider of theplurality of content providers, wherein the user requires a firstsubscription to the first content provider to access the first subset.For example, control circuitry 304 may analyze a content provider fieldassociated with metadata of the media asset to identify a contentprovider of said media asset. Control circuitry 304 may associate eachmedia asset with the content provider of the media asset. Controlcircuitry 304 may determine that a content provider of the plurality ofcontent providers requires a subscription. For example, controlcircuitry 304 may query (e.g., via communications network 414) thecontent provider to determine whether a subscription to the contentprovider is required.

At step 1608, control circuitry 304 receives first user profilecharacteristics of interest to the first content provider. For example,control circuitry 304 may transmit a query (e.g., via communicationsnetwork 414) to the content provider for user profile characteristics ofinterest to the content provider.

At step 1610, control circuitry 304 compares the first user profilecharacteristics to the user profile. For example, control circuitry 304application may compare a user profile characteristic, such as an age,to the user profile by accessing an age field of the user profile storedin storage 308 and by making evaluating the equality of the age of theuser to an age of interest to the content provider.

At step 1612, control circuitry 304 compares the first user profilecharacteristics to the user profile by determining a degree to which thefirst user profile characteristics correspond to the user profile. Forexample, control circuitry 304 may determine a degree by using a fuzzymatching algorithm to compare the user profile characteristic with dataof the user profile. Control circuitry 304 may compute a scorerepresentative of a degree to which the user profile matches the userprofile characteristics.

At step 1614, control circuitry 304 determines first subscription termsfor the first subscription based on the degree to which the first userprofile characteristics correspond to the user profile. For example,control circuitry 304 may identify that the user profile matches theuser profile characteristic to a high degree (e.g., 90% out of 100%).Based on the determination that the user profile matches the userprofile characteristic to a high degree, control circuitry 304 maydetermine subscription terms having a higher discount than the discountfor a user matching with a low degree.

At step 1616, control circuitry 304 transmits a first subscriptionrequest featuring the first subscription terms to the first contentprovider. For example, control circuitry 304 may generate a packet fortransmission over communications network 414 to the content providercomprising a first subscription request and first subscription termscomputed by control circuitry 304.

It is contemplated that the steps or descriptions of FIG. 16 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 16 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order or inparallel or substantially simultaneously to reduce lag or increase thespeed of the system or method. Furthermore, it should be noted that anyof the devices or equipment discussed in relation to FIGS. 3-4 and 9could be used to perform one or more of the steps in FIG. 16.

The above-described embodiments of the present disclosure are presentedfor purposes of illustration and not of limitation, and the presentdisclosure is limited only by the claims that follow. Furthermore, itshould be noted that the features and limitations described in any oneembodiment may be applied to any other embodiment herein, and flowchartsor examples relating to one embodiment may be combined with any otherembodiments in a suitable manner, done in different orders, or done inparallel. Furthermore, it should be noted that while a first step may bebased on and/or in response to a second step, such a relationship doesnot preclude additional steps occurring between the first and secondsteps. In addition, the systems and methods described herein may beperformed in real time. It should also be noted, the systems and/ormethods described above may be applied to, or used in accordance with,other systems and/or methods.

What is claimed is:
 1. A system for managing media content subscriptionsfor a user, the system comprising: storage circuitry configured to:store a user profile; and store media assets available from a pluralityof content providers; control circuitry configured to: retrieve a userprofile from memory; search stored media assets available from theplurality of content providers to identify a plurality of media assetsmatching a user preference in the user profile; identify a first subsetof the plurality of media assets available from a first content providerof the plurality of content providers, wherein the user requires a firstsubscription to the first content provider to access the first subset;identify a second subset of the plurality of media assets available froma second content provider of the plurality of content providers, whereinthe user requires a second subscription to the second content providerto access the second subset; retrieve first user profile characteristicsof interest to the first content provider and second user profilecharacteristics of interest to the second content provider; compare thefirst user profile characteristics and the second user profilecharacteristics to the user profile to determine a first degree to whichthe first user profile characteristics correspond to the user profileand a second degree to which the second user profile characteristicscorrespond to the user profile, respectively; and based on the firstdegree to which the first user profile characteristics correspond to theuser profile, determine first subscription terms for the firstsubscription; based on the second degree to which the second userprofile characteristics correspond to the user profile, determine secondsubscription terms for the second subscription; and modify the firstsubscription terms based on an updated first subscription termcriterion; and communications circuitry configured to: transmit a firstsubscription request featuring the first subscription terms to the firstcontent provider and a second subscription request featuring the secondsubscription terms to the second content provider; receive a firstsubscription term criterion from the first content provider, wherein thefirst subscription term criterion indicates subscription termsacceptable to the first content provider based on the first degree;notify the first content provider of the second subscription requesttransmitted to the second content provider; and in response to notifyingthe first content provider of the second subscription requesttransmitted to the second content provider, receive an updated firstsubscription term criterion from the first content provider.
 2. Thesystem of claim 1, wherein the control circuitry is further configuredto retrieve the user profile from memory in response to detecting thatthe user is going to cancel a third subscription to a third contentprovider.
 3. The system of claim 2, wherein the control circuitryconfigured to detect that the user is going to cancel the thirdsubscription to the third content provider is further configured todetecting that the first subset will no longer be available from thethird content provider at a future date.
 4. The system of claim 1,wherein the first user profile characteristics include at least one ofuser demographic data, viewing history, price preferences, mediaconsumption rate, commercial viewing preferences, and retail purchaseinformation.
 5. The system of claim 1, wherein the control circuitry isfurther configured to receive information from the user to populate theuser profile, wherein the information is compared to the first userprofile characteristics to determine the first degree to which the firstuser profile characteristics correspond to the user profile.
 6. Thesystem of claim 5, wherein the control circuitry is further configuredto: generate for display a first promotion for the first subscriptionbased on the information; receive an update to the information from theuser; and generate for display a second promotion for the firstsubscription based on the updated information.
 7. The system of claim 1,wherein the updated subscription term criterion is based on the usersubscribing to both the first content provider and the second contentprovider.
 8. The system of claim 1, wherein the first subscriptionrequest includes a threshold number of users that will subscribe to thefirst content provider at the first subscription terms.